Giter Site home page Giter Site logo

bergercookie / syncall Goto Github PK

View Code? Open in Web Editor NEW
367.0 12.0 32.0 89.53 MB

Bi-directional synchronization between services such as Taskwarrior, Google Calendar, Notion, Asana, and more

License: MIT License

Python 94.34% Shell 5.66%
google-calendar taskwarrior task-management calendar sync notion python3 google google-tasks caldav

syncall's Introduction

syncall

Coverage Status pre-commit PyPI version Downloads Code style: black

Description

syncall is your one-stop software to bi-directionally synchronize and keep in sync the data from a variety of services. The framework is targeted towards, but not limited to, the synchronization of note-taking and task management data. Each synchronization comes with its own executable which handles the synchronization services/sides at hand.

One of the main goals of syncall is to be extendable. Thus it should be easy to introduce support for either a new service / synchronization side (e.g., ClickUp) or a new synchronization altogether (e.g., ClickUp <-> Google Keep) given that you implement the corresponding synchronization sides and conversion methods. See also the CONTRIBUTING guide to get started.

At the moment the list of supported synchronizations is the following:

Description Executable
README TaskwarriorGoogle Tasks tw-gtasks-sync
README TaskwarriorGoogle Calendar tw-gcal-sync
README TaskwarriorNotion Checkboxes tw-notion-sync
README TaskwarriorGoogle Keep Checkboxes tw-gkeep-sync
README TaskwarriorAsana Tasks tw-asana-sync
README Taskwarrior ⬄ Generic Caldav server tw-caldav-sync
README Local Files ⬄ Google Keep Notes fs-gkeep-sync

Each of the above should support bi-directional synchronization between the said services. This means that on an addition, modification, or deletion of an item on one side, a corresponding addition, modification or deletion of the counterpart item will occur on the other side so that the two sides are eventually in sync. All synchronizations also support conflict resolution meaning that it can successfully deal with item edits on both sides.

Currently unless the executable at hand specifies otherwise, the following conflict resolution strategies are available:

  1. MostRecentRS
  2. LeastRecentRS
  3. AlwaysFirstRS
  4. AlwaysSecondRS

By the end of the run, it should show you a summary of what's been done, like the following.

Google Keep
-----------
        * Items created: 3
        * Items updated: 2
        * Items deleted: 1

Taskwarrior
-----------
        * Items created: 1
        * Items updated: 0
        * Items deleted: 0

Refer to the corresponding README from the list above for instructions specific to the synchronization with that particular service. Before jumping to that though, please complete the installation instructions below.

Installation instructions

Requirements

  • Python version >= 3.8
  • For the integrations that require Taskwarrior - (Installation instructions) version >=2.6 is required.

Installation Options

You have to specify at least one extra. To do so use the [] syntax in pip:

# for installing integration with google (e.g. Google Keep / Calendar) and Notion
pip3 install syncall[notion,google]

Here's some of the available options for installing it:

  • From PyPI - e.g., Specify three extras for integrations - Google (Calendar/Tasks), Google Keep, Notion):

    pip3 install --user --upgrade syncall[notion,google,gkeep]
  • From Github - e.g., Specify two extras:

    pip3 install --user "syncall[gkeep,fs] @ git+https://github.com/bergercookie/syncall"
  • Download and install devel branch locally - bleeding edge

    git clone https://github.com/bergercookie/syncall
    cd syncall
    git checkout devel
    pip3 install --user --upgrade .[gkeep,fs,google,tw,caldav,asana]
  • Setup using poetry - handy for local development and for isolation of dependencies:

    git clone https://github.com/bergercookie/syncall
    poetry install --all-extras
    # get an interactive shell
    poetry shell
    
    # now the executables of all the services should be in your PATH for the
    # current shell and you can also edit the source code without further
    # re-installation ...

Sample Usage Instructions

Here's the CLI help page for the synchronizations available.

tw_gtasks_sync --help
Usage: tw_gtasks_sync [OPTIONS]

  Synchronize lists from your Google Tasks with filters from Taskwarrior.

  The list of TW tasks is determined by a combination of TW tags and a TW
  project while the list in GTasks should be provided by their name. if it
  doesn't exist it will be crated

Options:
  -l, --gtasks-list TEXT          Name of the Google Tasks list to synchronize
                                  (will be created if not there)
  --google-secret FILE            Override the client secret used for the
                                  communication with the Google APIs
  --oauth-port INTEGER            Port to use for OAuth Authentication with
                                  Google Applications
  -t, --taskwarrior-tags TEXT     Taskwarrior tags to synchronize
  -p, --tw-project TEXT           Taskwarrior project to synchronize
  --list-combinations             List the available named TW<->Google Tasks
                                  combinations
  --list-resolution-strategies    List all the available resolution strategies
                                  and exit
  -r, --resolution-strategy [MostRecentRS|LeastRecentRS|AlwaysFirstRS|AlwaysSecondRS]
                                  Resolution strategy to use during conflicts
  -b, --combination TEXT          Name of an already saved TW<->Google Tasks
                                  combination
  -s, --save-as TEXT              Save the given TW<->Google Tasks filters
                                  combination using a specified custom name.
  --prefer-scheduled-date         Prefer using the "scheduled" date field
                                  instead of the "due" date if the former is
                                  available
  -v, --verbose
  --version                       Show the version and exit.
  --help                          Show this message and exit.
tw_gcal_sync --help
Usage: tw_gcal_sync [OPTIONS]

  Synchronize calendars from your Google Calendar with filters from
  Taskwarrior.

  The list of TW tasks is determined by a combination of TW tags and a TW
  project while the calendar in GCal should be provided by their name. if it
  doesn't exist it will be crated

Options:
  -c, --gcal-calendar TEXT        Name of the Google Calendar to synchronize
                                  (will be created if not there)
  --google-secret FILE            Override the client secret used for the
                                  communication with the Google APIs
  --oauth-port INTEGER            Port to use for OAuth Authentication with
                                  Google Applications
  -t, --taskwarrior-tags TEXT     Taskwarrior tags to synchronize
  -p, --tw-project TEXT           Taskwarrior project to synchronize
  --list-combinations             List the available named TW<->Google
                                  Calendar combinations
  --list-resolution-strategies    List all the available resolution strategies
                                  and exit
  -r, --resolution-strategy [MostRecentRS|LeastRecentRS|AlwaysFirstRS|AlwaysSecondRS]
                                  Resolution strategy to use during conflicts
  -b, --combination TEXT          Name of an already saved TW<->Google
                                  Calendar combination
  -s, --save-as TEXT              Save the given TW<->Google Calendar filters
                                  combination using a specified custom name.
  --prefer-scheduled-date         Prefer using the "scheduled" date field
                                  instead of the "due" date if the former is
                                  available
  --default-event-duration-mins INTEGER
                                  The default duration of an event that is to
                                  be created on Google Calendar [in minutes]
  -v, --verbose
  --version                       Show the version and exit.
  --help                          Show this message and exit.

tw_notion_sync --help
Usage: tw_notion_sync [OPTIONS]

  Synchronise filters of TW tasks with the to_do items of Notion pages

  The list of TW tasks is determined by a combination of TW tags and TW
  project while the notion pages should be provided by their URLs.

Options:
  -n, --notion-page TEXT          Page ID of the Notion page to synchronize
  --token, --token-pass-path TEXT
                                  Path in the UNIX password manager to fetch
  -t, --taskwarrior-tags TEXT     Taskwarrior tags to synchronize
  -p, --tw-project TEXT           Taskwarrior project to synchronize
  -r, --resolution-strategy [MostRecentRS|LeastRecentRS|AlwaysFirstRS|AlwaysSecondRS]
                                  Resolution strategy to use during conflicts
  -b, --combination TEXT          Name of an already saved TW<->Notion
                                  combination
  --list-combinations             List the available named TW<->Notion
                                  combinations
  -s, --save-as TEXT              Save the given TW<->Notion filters
                                  combination using a specified custom name.
  -v, --verbose
  --version                       Show the version and exit.
  --help                          Show this message and exit.

tw_gkeep_sync --help
Usage: tw_gkeep_sync [OPTIONS]

  Synchronize Notes from your Google Keep with filters from Taskwarrior.

  The list of TW tasks is determined by a combination of TW tags and a TW
  project while the note in GKeep should be specified using their full name.
  if it doesn't exist it will be created.

  This service will create TaskWarrior tasks with the specified filter for
  each one of the checkboxed items in the specified Google Keep note and will
  create Google Keep items for each one of the tasks in the Taskwarrior
  filter. You have to first "Show checkboxes" in the Google Keep Note in order
  to use it with this service.

Options:
  -k, --gkeep-note TEXT           Full title of the Google Keep Note to
                                  synchronize - Make sure you enable the
                                  checkboxes
  --user, --user-pass-path TEXT   Path in the UNIX password manager to fetch
                                  the Google username from
  --passwd, --passwd-pass-path TEXT
                                  Path in the UNIX password manager to fetch
                                  the Google password from
  --token, --token-pass-path TEXT
                                  Path in the UNIX password manager to fetch
                                  the google keep token from
  -t, --taskwarrior-tags TEXT     Taskwarrior tags to synchronize
  -p, --tw-project TEXT           Taskwarrior project to synchronize
  --list-combinations             List the available named TW<->Google Keep
                                  combinations
  -r, --resolution-strategy [MostRecentRS|LeastRecentRS|AlwaysFirstRS|AlwaysSecondRS]
                                  Resolution strategy to use during conflicts
  -b, --combination TEXT          Name of an already saved TW<->Google Keep
                                  combination
  -s, --save-as TEXT              Save the given TW<->Google Keep filters
                                  combination using a specified custom name.
  -v, --verbose
  --version                       Show the version and exit.
  --help                          Show this message and exit.

tw_asana_sync --help
Usage: tw_asana_sync [OPTIONS]

Options:
  --token, --token-pass-path TEXT
                                  Path in the UNIX password manager to fetch
  -w, --asana-workspace-gid TEXT  Asana workspace GID used to filter tasks
  -W, --asana-workspace-name TEXT
                                  Asana workspace name used to filter tasks
  --list-asana-workspaces         List the available Asana workspaces
  -t, --taskwarrior-tags TEXT     Taskwarrior tags to synchronize
  -p, --tw-project TEXT           Taskwarrior project to synchronize
  -r, --resolution-strategy [MostRecentRS|LeastRecentRS|AlwaysFirstRS|AlwaysSecondRS]
                                  Resolution strategy to use during conflicts
  -b, --combination TEXT          Name of an already saved TW<->Asana
                                  combination
  --list-combinations             List the available named TW<->Asana
                                  combinations
  -s, --save-as TEXT              Save the given TW<->Asana filters
                                  combination using a specified custom name.
  -v, --verbose
  --version                       Show the version and exit.
  --help                          Show this message and exit.

tw_caldav_sync --help
Usage: tw_caldav_sync [OPTIONS]

  Synchronize lists of tasks from your caldav Calendar with filters from
  Taskwarrior.

  The list of TW tasks is determined by a combination of TW tags and a TW
  project. Use `--all` to synchronize all tasks.

  The calendar in Caldav should be provided by their name. If it doesn't exist
  it will be created.

Options:
  --caldav-calendar TEXT          Name of the caldav Calendar to sync (will be
                                  created if not there)
  --caldav-url TEXT               URL where the caldav calendar is hosted at
                                  (including /dav if applicable)
  --caldav-user TEXT              The caldav username for the given caldav
                                  instance
  --caldav-passwd, --caldav-passwd-pass-path TEXT
                                  Path in the UNIX password manager to fetch
                                  the caldav password from
  --caldav-passwd-cmd CMD
                                  A command (which is run in a shell) that
                                  outputs the caldav password on stdout
  --all, --taskwarrior-all-tasks  Sync all taskwarrior tasks [potentially very
                                  slow]
  -t, --taskwarrior-tags TEXT     Taskwarrior tags to synchronize
  -p, --tw-project TEXT           Taskwarrior project to synchronize
  --30-days, --only-modified-last-30-days
                                  Only synchronize Taskwarrior tasks that have
                                  been modified in the last 30 days
  --list-combinations             List the available named TW<->Caldav
                                  combinations
  -r, --resolution-strategy [MostRecentRS|LeastRecentRS|AlwaysFirstRS|AlwaysSecondRS]
                                  Resolution strategy to use during conflicts
  -b, --combination TEXT          Name of an already saved TW<->Caldav
                                  combination
  -s, --save-as TEXT              Save the given TW<->Caldav filters
                                  combination using a specified custom name.
  -v, --verbose
  --version                       Show the version and exit.
  --help                          Show this message and exit.
fs_gkeep_sync --help
Usage: fs_gkeep_sync [OPTIONS]

  Synchronize Notes from your Google Keep with text files in a directory on
  your filesystem.

  You can only synchronize a subset of your Google Keep notes based on a set
  of provided labels and you can specify where to create the files by
  specifying the path to a local directory. If you don't specify Google Keep
  Labels it will synchronize all your Google Keep notes.

  For each Google Keep Note, fs_gkeep_sync will create a corresponding file
  under the specified root directory with a matching name. Any addition,
  deletion and modification of the files on the filesystem will result in the
  corresponding addition, deletion and modification of the corresponding
  Google Keep item. The same holds the other way around.

Options:
  -k, --gkeep-labels TEXT         Google Keep labels whose notes to
                                  synchronize
  -i, --gkeep-ignore-labels TEXT  Google Keep labels whose notes will be
                                  explicitly ignored
  --user, --user-pass-path TEXT   Path in the UNIX password manager to fetch
                                  the Google username from
  --passwd, --passwd-pass-path TEXT
                                  Path in the UNIX password manager to fetch
                                  the Google password from
  --token, --token-pass-path TEXT
                                  Path in the UNIX password manager to fetch
                                  the google keep token from
  --ext, --filename-extension TEXT
                                  Use this extension for locally created files
  --fs, --fs-root TEXT            Directory to consider as root for
                                  synchronization operations
  --list-combinations             List the available named Filesystem<->Google
                                  Keep combinations
  -r, --resolution-strategy [MostRecentRS|LeastRecentRS|AlwaysFirstRS|AlwaysSecondRS]
                                  Resolution strategy to use during conflicts
  -b, --combination TEXT          Name of an already saved Filesystem<->Google
                                  Keep combination
  -s, --save-as TEXT              Save the given Filesystem<->Google Keep
                                  filters combination using a specified custom
                                  name.
  -v, --verbose
  --version                       Show the version and exit.
  --help                          Show this message and exit.

Mechanics / Automatic synchronization

To achieve synchronization between two arbitrary services, we use a push-pull mechanism which is far easier and less troublesome than an automatic synchronization solution. This means that you have to explicitly call the executable for the synchronization you want to achieve. If you want to automate this, consider adding a cron job or a systemd timer.

crontab -e
...

# Add the following to sync every 10' - modify the arguments according to your
# preferences and according to the instructions of the corresponding executable
# for example for `tw_gcal_sync`:
#
# See output and potential errors in your system logs (e.g., `/var/log/syslog`)
*/10 * * * * tw_gcal_sync -c "TW Reminders" -t "remindme"

FAQ

How do I reset the synchronization and start it from scratch?
  1. Remove the combination file that corresponds to your synchronization. For example, if you're executing synchronization of Google Keep with Taskwarrior, like the following, your combination name is testnote__None__test_tag.

    tw_gkeep_sync -t test_tag -k "testnote"

    The executable also mentions the combination name at the end of the run.

    ...
    14:00:03.41 | INFO      | Flushing data to remote Google Keep...
    14:00:04.32 | SUCCESS   | Sync completed successfully. You can now use the -b/--combination option to refer to this particular combination
    
      tw_gkeep_sync --combination testnote__None__test_tag
    

    For this combination, on Linux, remove ~/.config/syncall/testnote__None__test_tag.yaml.

  2. Remove the section for your combination in the <sideA_sideB_configs.yaml> configuration file under the ~/.config/syncall/ directory.

    This section will have the same name as the combination file deleted in the earlier step and will look like this:

    ---
    testnote__None__test_tag:
      gkeep_note: testnote
      tw_project: null
      tw_tags: !!python/tuple
        - test_tag
  3. Remove the items of one of the sides. Keep e.g. the items from the Google Keep note and delete the tasks of the tag/project you are using for synchronization.

  4. Rerun synchronization from scratch to populate the one side with the items of the other side.

I want to synchronize more than a single (Notion page / TW filter), (Google Calendar / TW filter) etc. combination.

See combinations.md.

Tab Completion

All synchronization executables support tab auto-completion for their options for bash, zsh and fish. You can find them under completions/

Miscellaneous

Self Promotion

If you find this tool useful, please star it on Github

TODO List

See ISSUES list for the things that I'm currently either working on or interested in implementing in the near future. In case there's something you are interesting in working on, don't hesitate to either ask for clarifications or just do it and directly make a PR.

syncall's People

Contributors

bergercookie avatar bjornfor avatar eigenmannmartin avatar kisseliov avatar lastmikoi avatar maxenglander avatar mnzaki avatar nikoskoukis-slamcore avatar oddbloke avatar pete-hamlin avatar saccarosium avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

syncall's Issues

[BUG][tw_gcal_sync] due date changes in TW are not reflected in Google Calendar

  1. Add a sample task in TaskWarrior: t add +test_gcal add kalispera
  2. Add a due date - t mod <id> due:now
  3. Sync tw_gcal_sync -t test_gcal -c tw_test
  4. Change the date: t <id> mod due:+3h
  5. Sync again.

This last step should update the corresponding event but this isn't detected as a change in the event at all:

17:26:34.87 | INFO      | Detecting changes from Gcal...
17:26:34.89 | INFO      | Detecting changes from Tw...
17:26:34.89 | WARNING   |

Google Calendar
---------------
        * Items created: 0
        * Items updated: 0
        * Items deleted: 0

Taskwarrior
-----------
        * Items created: 0
        * Items updated: 0
        * Items deleted: 0

Needs Browser error

I'm trying to setup google keep sync but I'm getting the following error

<class \'gkeepapi.exception.LoginException\'>\n          -> <module \'gkeepapi.exception\' from \'/usr/local/lib/python3.9/site-packages/gkeepapi/exception.py\'>\n\ngkeepapi.exception.LoginException: (\'NeedsBrowser\', \'To access your account, you must sign in on the web. Touch Next to start browser sign-in.\')\n'
Arguments: ()

Google Authentication blocked

Hello, while trying to fetch credentials when trying to setup for the first time, I see this error.

app_blocked

Any idea how can this be now solved? :)

Cheers

Still can't authorize access to my calendar

I have followed all of the instruction, but when I attempt to sync my calendar with TW, I get the following message:

Please visit this URL to authorize this application: https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=2962XXXXXXXX-jja1pq86bu30jgdocfchn8j5XXXXXXXX.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar&state=SfLgzC3JOVZYhL0BWGGWsgXXXXXXXX&access_type=offline

I am not overly knowledgeable about google products and tools, so I am at a loss.

Trouble installing tw_gcal_sync "You have to install the [gcal] extra"

Greetings, and thank you for your attention. I have some trouble installing this tool.

First, I installed tw_gcal_sync using:

pip3 install --user --upgrade taskwarrior-syncall

Then I tried running:

tw_gcal_sync -c "Tasks" -t "gcal" --gcal-secret "/home/lorenzo/Documents/00 Bandeja de Entrada/Taskwarrior Calendar Sync/client_secret_702189409220-ho9fohj3foiia95u4m49e0ojbjste6ln.apps.googleusercontent.com.json"

And got this:

2022-03-30 13:18:26.424 | ERROR    | taskwarrior_syncall.scripts.tw_gcal_sync:<module>:10 - You have to install the [gcal] extra for /home/lorenzo/.local/bin/tw_gcal_sync to work. Exiting.

I use Elementary OS Jólnir, my Taskwarrior version is 2.6.2.

What may be wrong here?
Thanks again to anybody who reads this :)

JSONDecodeError

Hi
I really want to try this out, but It fails on the sync. It looks like a json problem. Do you have any suggestions?

Traceback (most recent call last):
  File "/home/grove/.local/bin/tw_gcal_sync", line 61, in <module>
    main()
  File "/home/grove/.local/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/grove/.local/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/grove/.local/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/grove/.local/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/grove/.local/bin/tw_gcal_sync", line 46, in main
    use_ascending_order=ascending_order)
  File "/home/grove/.local/lib/python3.6/site-packages/taskw_gcal_sync/TaskWarriorSide.py", line 54, in get_all_items
    self._load_all_items()
  File "/home/grove/.local/lib/python3.6/site-packages/taskw_gcal_sync/TaskWarriorSide.py", line 38, in _load_all_items
    self.items = self.tw.load_tasks()
  File "/usr/local/lib/python3.6/dist-packages/taskw/warrior.py", line 553, in load_tasks
    for db in Command.files(command)
  File "/usr/local/lib/python3.6/dist-packages/taskw/warrior.py", line 553, in <genexpr>
    for db in Command.files(command)
  File "/usr/local/lib/python3.6/dist-packages/taskw/warrior.py", line 489, in _get_task_objects
    json = self._get_json(*args)
  File "/usr/local/lib/python3.6/dist-packages/taskw/warrior.py", line 486, in _get_json
    return json.loads(decoded)
  File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.6/json/decoder.py", line 355, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Invalid control character at: line 125 column 511 (char 34179)

Notion Integration + Rename of repo

Hi all,

taskw_gcal_sync is now called taskwarrior-syncall in an attempt to generalise it and handle more sides to convert to and from taskwarrior. I've also added support for synchronizing with Notion. This should work with basically the same mechanics and as taskw_gcal_sync, just with a different executable - tw_notion_sync

In the near future I'm looking to add more integrations for ClickUp and Google Keep 🤞🏾

[BUG] FileNotFoundError: Notion sync fails with error reading taskrc file.

Describe the bug

tw_notion_sync fails with FileNotFoundError, Apparently due to not being able to read the configuration file appropriately.

I installed the application and tried to sync with a page in Notion. The only changes done to .taskrc is I have applied a theme.

To Reproduce

Steps to reproduce the behaviour:

  1. Install and try using tw_notion_sync with a modified .taskrc (I have a theme applied)

Expected Behavior

Sync should work fine.

📸 Screenshots

Logs:

Traceback (most recent call last):
  File "/xxxxxx/code/venvs/task-sync/bin/tw_notion_sync", line 8, in <module>
    sys.exit(main())
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/taskwarrior_syncall/scripts/tw_notion_sync.py", line 157, in main
    tw_side = TaskWarriorSide(tags=tw_tags, project=tw_project)
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/taskwarrior_syncall/taskwarrior_side.py", line 53, in __init__
    self._tw = TaskWarrior(marshal=True, config_filename=config_file)
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/taskw/warrior.py", line 438, in __init__
    super(TaskWarriorShellout, self).__init__(config_filename)
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/taskw/warrior.py", line 62, in __init__
    self.config = TaskWarriorBase.load_config(config_filename)
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/taskw/warrior.py", line 180, in load_config
    return TaskRc(config_filename, overrides=overrides)
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/taskw/taskrc.py", line 58, in __init__
    config = self._read(self.path)
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/taskw/taskrc.py", line 106, in _read
    TaskRc(right.strip())
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/taskw/taskrc.py", line 58, in __init__
    config = self._read(self.path)
  File "/xxxxxx/code/venvs/task-sync/lib/python3.9/site-packages/taskw/taskrc.py", line 96, in _read
    with codecs.open(path, 'r', 'utf8') as config_file:
  File "/usr/local/Cellar/[email protected]/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/codecs.py", line 905, in open
    file = builtins.open(filename, mode, buffering)
FileNotFoundError: [Errno 2] No such file or directory: 'dark-yellow-green.theme'

Versions

OS Version (cat /etc/*-release; uname -a)

Darwin MacBook-Pro.local 21.6.0 Darwin Kernel Version 21.6.0: Wed Aug 10 14:25:27 PDT 2022; root:xnu-8020.141.5~2/RELEASE_X86_64 x86_64

Python version (python --version; python3 --version)

Python 3.9.13

--version of your executable

tw_notion_sync, version 1.2.1

Additional context

Add any other context about the problem here.

OS support

Hi there,

What is the current limitation driving the usage only on Linux?

Option to create a google reminder (not a calendar reminder)

The current implementation only supports the creation of events in Google calendar but tasks in taskwarrior strike me more as reminders in the Google calendar sense. It would be nice to have the option to select what taskwarrior tasks map to. I'm aware that there's no support in the calendar API for reminders but I think there's some projects that aim to recreate the functionality via the rest API and some wrappers exist. I may have some free time to jump to work on this soon so it would be good to know how you want hacking to work too (mypy rules)!

AssertionError: not found on other side

Thank you for this great tool. Recently, I deleted a bunch of tasks in taskwarrior and when I tried to sync with google calendar, following error occurs:

File "/home/username/taskw_gcal_sync/tw_gcal_sync", line 71, in <module>
  main()
File "/home/username/.local/lib/python3.6/site-packages/click/core.py", line 764, in __call__
  return self.main(*args, **kwargs)
File "/home/username/.local/lib/python3.6/site-packages/click/core.py", line 717, in main
  rv = self.invoke(ctx)
File "/home/username/.local/lib/python3.6/site-packages/click/core.py", line 956, in invoke
  return ctx.invoke(self.callback, **ctx.params)
File "/home/username/.local/lib/python3.6/site-packages/click/core.py", line 555, in invoke
  return callback(*args, **kwargs)
File "/home/username/taskw_gcal_sync/tw_gcal_sync", line 66, in main
  aggregator.synchronise_deleted_items("tw")
File "/home/username/taskw_gcal_sync/taskw_gcal_sync/TWGCalAggregator.py", line 340, in synchronise_deleted_items
  assert other_item, "{} not found on other side".format(other_id)
AssertionError: 8f408s05pq58aaocfqhqrl6gk8 not found on other side

Not sure how to rectify this. Kindly help.

[BUG] Google Keep sync fails with BadAuthentication

Describe the bug

Recently updated my Ubuntu server and after the update the taskwarrior_syncall library was gone. Just got this error when running tw_gkeep_sync (which for some reason was still installed):

Traceback (most recent call last):
  File "/home/taskwarrior/.local/bin/tw_gkeep_sync", line 5, in <module>
    from taskwarrior_syncall.scripts.tw_gkeep_sync import main
ModuleNotFoundError: No module named 'taskwarrior_syncall'

After reinstalling taskwarrior through pip3 (version 1.2.1) I'm getting BadAuthentication errors like this:

09:10:10.06 | ERROR    	| Application failed; Below you can find the error message and stack trace. If you think this is a bug, attach this stack trace to create a new issue -> [https://github.com/bergercookie/taskwarrior-syncall/issues].
Traceback (most recent call last):

  File "/home/taskwarrior/.local/bin/tw_gkeep_sync", line 8, in <module>
    sys.exit(main())
    │   │    └ <Command main>
    │   └ <built-in function exit>
    └ <module 'sys' (built-in)>
  File "/home/taskwarrior/.local/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           │    │     │       └ {}
           │    │     └ ()
           │    └ <function BaseCommand.main at 0x7fe3e2f67a30>
           └ <Command main>
  File "/home/taskwarrior/.local/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         │    │      └ <click.core.Context object at 0x7fe3e3f0fcd0>
         │    └ <function Command.invoke at 0x7fe3e2f7c550>
         └ <Command main>
  File "/home/taskwarrior/.local/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           │   │      │    │           │   └ {'tw_tags': ('groceries',), 'gkeep_note': 'Redacted', 'verbose': 1, 'gkeep_user_pass_path': 'gkeepapi/user', 'gkeep_pass...
           │   │      │    │           └ <click.core.Context object at 0x7fe3e3f0fcd0>
           │   │      │    └ <function main at 0x7fe3e238ba30>
           │   │      └ <Command main>
           │   └ <function Context.invoke at 0x7fe3e2f67250>
           └ <click.core.Context object at 0x7fe3e3f0fcd0>
  File "/home/taskwarrior/.local/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
                       │       └ {'tw_tags': ('groceries',), 'gkeep_note': 'Redacted', 'verbose': 1, 'gkeep_user_pass_path': 'gkeepapi/user', 'gkeep_pass...
                       └ ()
> File "/home/taskwarrior/.local/lib/python3.10/site-packages/taskwarrior_syncall/scripts/tw_gkeep_sync.py", line 178, in main
    with Aggregator(
         └ <class 'taskwarrior_syncall.aggregator.Aggregator'>
  File "/home/taskwarrior/.local/lib/python3.10/site-packages/taskwarrior_syncall/aggregator.py", line 121, in __enter__
    self.start()
    │    └ <function Aggregator.start at 0x7fe3e313dbd0>
    └ <taskwarrior_syncall.aggregator.Aggregator object at 0x7fe3e2383a60>
  File "/home/taskwarrior/.local/lib/python3.10/site-packages/taskwarrior_syncall/aggregator.py", line 203, in start
    self._side_A.start()
    │    │       └ <function GKeepTodoSide.start at 0x7fe3e238a830>
    │    └ <taskwarrior_syncall.google.gkeep_todo_side.GKeepTodoSide object at 0x7fe3e23811b0>
    └ <taskwarrior_syncall.aggregator.Aggregator object at 0x7fe3e2383a60>
  File "/home/taskwarrior/.local/lib/python3.10/site-packages/taskwarrior_syncall/google/gkeep_todo_side.py", line 56, in start
    success = self._keep.login(self._gkeep_user, self._gkeep_passwd)
              │    │     │     │    │            │    └ 'Redacted password'
              │    │     │     │    │            └ <taskwarrior_syncall.google.gkeep_todo_side.GKeepTodoSide object at 0x7fe3e23811b0>
              │    │     │     │    └ 'Redacted mail'
              │    │     │     └ <taskwarrior_syncall.google.gkeep_todo_side.GKeepTodoSide object at 0x7fe3e23811b0>
              │    │     └ <function Keep.login at 0x7fe3e2389240>
              │    └ <gkeepapi.Keep object at 0x7fe3e23ec7c0>
              └ <taskwarrior_syncall.google.gkeep_todo_side.GKeepTodoSide object at 0x7fe3e23811b0>
  File "/home/taskwarrior/.local/lib/python3.10/site-packages/gkeepapi/__init__.py", line 695, in login
    ret = auth.login(username, password, device_id)
          │    │     │         │         └ 125331095410741
          │    │     │         └ 'Redacted password'
          │    │     └ 'Redacted mail'
          │    └ <function APIAuth.login at 0x7fe3e2388040>
          └ <gkeepapi.APIAuth object at 0x7fe3e23ed540>
  File "/home/taskwarrior/.local/lib/python3.10/site-packages/gkeepapi/__init__.py", line 59, in login
    raise exception.LoginException(
          │         └ <class 'gkeepapi.exception.LoginException'>
          └ <module 'gkeepapi.exception' from '/home/taskwarrior/.local/lib/python3.10/site-packages/gkeepapi/exception.py'>

gkeepapi.exception.LoginException: ('BadAuthentication', None)

The username and password works just fine in the browser. I also tried to enable 2-factor authentication and create an application password but still no dice. Also tried to upgrade all the pip packages, but taskwarrior is apparently locked at older versions of some packages.

To Reproduce

Try to sync with GKeep

Expected Behavior

Everything should work like it did before I upgraded Ubuntu.

Versions

OS Version (cat /etc/*-release; uname -a)

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
Linux ubuntu 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Python version (python --version; python3 --version)

Python 3.10.4

--version of your executable

tw_gkeep_sync, version 1.2.1

If port is used by another application, taskw_gcal_sync fails

Hello,

When I tried to run the app for the first time, I had the following error:

Traceback (most recent call last):
  File "/home/petemir/.local/bin/tw_gcal_sync", line 8, in <module>
    sys.exit(main())
  File "/home/petemir/.local/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/petemir/.local/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/petemir/.local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/petemir/.local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/petemir/.local/lib/python3.8/site-packages/taskw_gcal_sync/scripts/tw_gcal_sync.py", line 46, in main
    aggregator.start()
  File "/home/petemir/.local/lib/python3.8/site-packages/taskw_gcal_sync/TWGCalAggregator.py", line 126, in start
    self.gcal_side.start()
  File "/home/petemir/.local/lib/python3.8/site-packages/taskw_gcal_sync/GCalSide.py", line 53, in start
    self.gain_access()
  File "/home/petemir/.local/lib/python3.8/site-packages/taskw_gcal_sync/GCalSide.py", line 209, in gain_access
    creds = self._get_credentials()
  File "/home/petemir/.local/lib/python3.8/site-packages/taskw_gcal_sync/GCalSide.py", line 199, in _get_credentials
    creds = flow.run_local_server()
  File "/home/petemir/.local/lib/python3.8/site-packages/google_auth_oauthlib/flow.py", line 460, in run_local_server
    local_server = wsgiref.simple_server.make_server(
  File "/home/petemir/Apps/anaconda3/envs/newbase/lib/python3.8/wsgiref/simple_server.py", line 154, in make_server
    server = server_class((host, port), handler_class)
  File "/home/petemir/Apps/anaconda3/envs/newbase/lib/python3.8/socketserver.py", line 452, in __init__
    self.server_bind()
  File "/home/petemir/Apps/anaconda3/envs/newbase/lib/python3.8/wsgiref/simple_server.py", line 50, in server_bind
    HTTPServer.server_bind(self)
  File "/home/petemir/Apps/anaconda3/envs/newbase/lib/python3.8/http/server.py", line 138, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "/home/petemir/Apps/anaconda3/envs/newbase/lib/python3.8/socketserver.py", line 466, in server_bind
    self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use

I had some docker containers running, I stopped most of them, and then I could run the application without any problems. I couldn't find where the application opens a socket so I don't know what port it is trying to use, but perhaps it would be possible to check if it is used by any application, and if it is, then try another port?

Thanks!

ValueError: time data '2019-09-04T16:52:42+01:0.000000Z' does not match format '%Y-%m-%dT%H:%M:%S.%fZ'

Although when modifying a task to have a due date and then syncing I got the following error, however not sure if this is a generic bug or an OS specific bug.

Traceback (most recent call last):
  File "/USERS/intern1/Library/Python/3.7/bin/tw_gcal_sync", line 61, in <module>
    main()
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/USERS/intern1/Library/Python/3.7/bin/tw_gcal_sync", line 53, in main
    aggregator.register_items(gcal_items, "gcal")
  File "/Users/intern1/Library/Python/3.7/lib/python/site-packages/taskw_gcal_sync/TWGCalAggregator.py", line 249, in register_items
    other_item_new = convert_fun(item)
  File "/Users/intern1/Library/Python/3.7/lib/python/site-packages/taskw_gcal_sync/TWGCalAggregator.py", line 512, in convert_gcal_to_tw
    tw_item['due'] = GCalSide.get_event_time(gcal_item, t='end')
  File "/Users/intern1/Library/Python/3.7/lib/python/site-packages/taskw_gcal_sync/GCalSide.py", line 223, in get_event_time
    item[t][GCalSide.get_date_key(item[t])])
  File "/Users/intern1/Library/Python/3.7/lib/python/site-packages/taskw_gcal_sync/GCalSide.py", line 271, in parse_datetime
    dt_out = datetime.datetime.strptime(dt2, _format)
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/_strptime.py", line 577, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/_strptime.py", line 359, in _strptime
    (data_string, format))
ValueError: time data '2019-09-04T16:52:42+01:0.000000Z' does not match format '%Y-%m-%dT%H:%M:%S.%fZ'

Originally posted by @alessio-b-zak in #11 (comment)

  • Solve datetime issue
    - [ ] Consider switching from timedate usage to arrow

v1.0 Release - Complete Redesign

Hi all,

Thanks for using this project 😌
I've now released version 1.0 which should be less error/exception-prone to the last version 🥳

More specifically the overall workflow for how to update/insert/delete items from one side to the other is now an independent pac kage, in item_synchronizer. This is overall better written and better unittested and should hopefully improve the overall usability of this application as well.

I'll be closing any issues that have to do with synchronization problems since they may now be dealt with via the application re-design.
Feel free to re-open if they don't work as expected.

Option to have deleted events from Google Calendar show as completed tasks in taskwarrior

Hi.

I would like to request the feature to have deleted events from Google Calendar show as completed tasks in Taskwarrior.

Right now, to do so (I believe) that one would have to open the event and manually change "pending" to "completed".

If this was implemented, it would be much faster to mark tasks as done via Google Calendar and i believe that people more often mark a task as "done" as opposed to delete it.

This probably sounds odd and/or unnecessary, but hopefully it makes sense if you see my setup which i have described in #8 .

It probably sounds like a bit of an convoluted setup, but I find it much better than existing Android Taskwarrior apps.

[tw_gcal_sync] [Bug] Timezone difference

Hello,

I have been having a problem when syncing tasks to a calendar. e.g., on my pending.data file the event has as a due timestamp 1649250000, which on my current timezone (GMT+2 -DST-, changed from GMT+1 on 27/03/2022) translates to today at 15:00:00 (according to this site). My Google Calendar is also set with GMT+2 as the timezone. Yet, when I sync the event, I actually see it at 14:00:00 on the Calendar.

This also happened with the events I created while on GMT+1 (which, funnily enough, they now show at the correct time on the calendar).

Let me know if there's anything else I can help with to debug this.

Cheers!

[BUG] "include" in TW config file crashes taskwarrior-syncall

Taskwarrior allows to include theme or external config file (it's great to store sync configuration in different location). With those configuration taskwarrior-syncall crashes.

To Reproduce

In .taskrc
include light-16.theme
include ~/task/wingtask

Error

Traceback (most recent call last):
  File "/home/miro/.local/bin/tw_gcal_sync", line 8, in <module>
    sys.exit(main())
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/miro/.local/lib/python3.10/site-packages/taskwarrior_syncall/scripts/tw_gcal_sync.py", line 142, in main
    tw_side = TaskWarriorSide(tags=tw_tags, project=tw_project)
  File "/home/miro/.local/lib/python3.10/site-packages/taskwarrior_syncall/taskwarrior_side.py", line 53, in __init__
    self._tw = TaskWarrior(marshal=True, config_filename=config_file)
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/warrior.py", line 438, in __init__
    super(TaskWarriorShellout, self).__init__(config_filename)
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/warrior.py", line 62, in __init__
    self.config = TaskWarriorBase.load_config(config_filename)
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/warrior.py", line 180, in load_config
    return TaskRc(config_filename, overrides=overrides)
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/taskrc.py", line 58, in __init__
    config = self._read(self.path)
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/taskrc.py", line 106, in _read
    TaskRc(right.strip())
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/taskrc.py", line 58, in __init__
    config = self._read(self.path)
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/taskrc.py", line 96, in _read
    with codecs.open(path, 'r', 'utf8') as config_file:
  File "/usr/lib/python3.10/codecs.py", line 905, in open
    file = builtins.open(filename, mode, buffering)
FileNotFoundError: [Errno 2] No such file or directory: 'light-16.theme'

versions

tw_gcal_sync, version 1.2.1
taskwarrior 2.6.2

Getting AssertionError I cannot clear

Because of something I did with #49
I am now wedged and constantly get this AssertionError. I tried clearing the combination file to reset sync, but still getting it. And it then update the gcal event titles with a weird tag string after I complete/mark done tasks on TW side.

image

  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
           │    │     │       └ {}
           │    │     └ ()
           │    └ <function BaseCommand.main at 0x7f9ccde10670>
           └ <click.core.Command object at 0x7f9ccbb0ef40>

  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
         │    │      └ <click.core.Context object at 0x7f9ccbacdb50>
         │    └ <function Command.invoke at 0x7f9ccde11040>
         └ <click.core.Command object at 0x7f9ccbb0ef40>

  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           │   │      │    │           │   └ {'gcal_calendar': 'Taskwarrior', 'tw_tags': ('cal',), 'verbose': 1, 'google_secret': '/home/BOSDYN/bcohen/gcal_client_secret....
           │   │      │    │           └ <click.core.Context object at 0x7f9ccbacdb50>
           │   │      │    └ <function main at 0x7f9ccba51c10>
           │   │      └ <click.core.Command object at 0x7f9ccbb0ef40>
           │   └ <function Context.invoke at 0x7f9ccde101f0>
           └ <click.core.Context object at 0x7f9ccbacdb50>

  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
           │         │       └ {'gcal_calendar': 'Taskwarrior', 'tw_tags': ('cal',), 'verbose': 1, 'google_secret': '/home/BOSDYN/bcohen/gcal_client_secret....
           │         └ ()
           └ <function main at 0x7f9ccba51c10>

  File "/home/BOSDYN/bcohen/.local/lib/python3.8/site-packages/taskwarrior_syncall/scripts/tw_gcal_sync.py", line 164, in main
    aggregator.sync()
    │          └ <function Aggregator.sync at 0x7f9ccdead4c0>
    └ <taskwarrior_syncall.aggregator.Aggregator object at 0x7f9ccb9e6e80>
  File "/home/BOSDYN/bcohen/.local/lib/python3.8/site-packages/taskwarrior_syncall/aggregator.py", line 199, in sync
    self._synchronizer.sync(changes_A=changes_A, changes_B=changes_B)
    │    │             │              │                    └ SideChanges(new=set(), modified=set(), deleted=set())
    │    │             │              └ SideChanges(new={'vsha4q6mtcedh8mo1gggnmni2o', '4dubbfq5sstf2a22eflrbl8p9c', 'isbssipe8dp9uanelh0p6c6bks', '6bmtbnpi85j6u0mam...
    │    │             └ <function Synchronizer.sync at 0x7f9ccdea0790>
    │    └ <item_synchronizer.synchronizer.Synchronizer object at 0x7f9ccba4ebe0>
    └ <taskwarrior_syncall.aggregator.Aggregator object at 0x7f9ccb9e6e80>
  File "/home/BOSDYN/bcohen/.local/lib/python3.8/site-packages/item_synchronizer/synchronizer.py", line 147, in sync
    return self._sync(changes_A=changes_A, changes_B=changes_B)
           │    │               │                    └ SideChanges(new=set(), modified=set(), deleted=set())
           │    │               └ SideChanges(new={'vsha4q6mtcedh8mo1gggnmni2o', '4dubbfq5sstf2a22eflrbl8p9c', 'isbssipe8dp9uanelh0p6c6bks', '6bmtbnpi85j6u0mam...
           │    └ <function Synchronizer._sync at 0x7f9ccdea08b0>
           └ <item_synchronizer.synchronizer.Synchronizer object at 0x7f9ccba4ebe0>
  File "/home/BOSDYN/bcohen/.local/lib/python3.8/site-packages/item_synchronizer/synchronizer.py", line 173, in _sync
    self._sync_new_items(changes_A=changes_A, changes_B=changes_B)
    │    │                         │                    └ SideChanges(new=set(), modified=set(), deleted=set())
    │    │                         └ SideChanges(new={'vsha4q6mtcedh8mo1gggnmni2o', '4dubbfq5sstf2a22eflrbl8p9c', 'isbssipe8dp9uanelh0p6c6bks', '6bmtbnpi85j6u0mam...
    │    └ <function Synchronizer._sync_new_items at 0x7f9ccdea0820>
    └ <item_synchronizer.synchronizer.Synchronizer object at 0x7f9ccba4ebe0>
  File "/home/BOSDYN/bcohen/.local/lib/python3.8/site-packages/item_synchronizer/synchronizer.py", line 165, in _sync_new_items
    inserted_id = self._convert_n_insert(id_, insert_to_side)
                  │    │                 │    └ 'B'
                  │    │                 └ 'h3quv3a0pusdfrqost0etouf8k'
                  │    └ <function Synchronizer._convert_n_insert at 0x7f9ccdea05e0>
                  └ <item_synchronizer.synchronizer.Synchronizer object at 0x7f9ccba4ebe0>
  File "/home/BOSDYN/bcohen/.local/lib/python3.8/site-packages/item_synchronizer/synchronizer.py", line 111, in _convert_n_insert
    new_id: ID = inserter(converted_item)
                 │        └ {'annotations': [], 'status': 'pending', 'uuid': UUID('2052dc23-5a5b-42f4-9177-7487ab96df5c'), 'description': 'foo15', 'due':...
                 └ <function Synchronizer._catch_exc.<locals>.wrapper at 0x7f9ccb9f4ee0>
> File "/home/BOSDYN/bcohen/.local/lib/python3.8/site-packages/item_synchronizer/synchronizer.py", line 78, in wrapper
    return fn(*args, **kargs)
           │   │       └ {}
           │   └ ({'annotations': [], 'status': 'pending', 'uuid': UUID('2052dc23-5a5b-42f4-9177-7487ab96df5c'), 'description': 'foo15', 'due'...
           └ functools.partial(<bound method Aggregator.inserter_to of <taskwarrior_syncall.aggregator.Aggregator object at 0x7f9ccb9e6e80...
  File "/home/BOSDYN/bcohen/.local/lib/python3.8/site-packages/taskwarrior_syncall/aggregator.py", line 224, in inserter_to
    item_created = item_side.add_item(item)
                   │         │        └ {'annotations': [], 'status': 'pending', 'uuid': UUID('2052dc23-5a5b-42f4-9177-7487ab96df5c'), 'description': 'foo15', 'due':...
                   │         └ <function TaskWarriorSide.add_item at 0x7f9ccd94d4c0>
                   └ <taskwarrior_syncall.taskwarrior_side.TaskWarriorSide object at 0x7f9ccb9e6e50>
  File "/home/BOSDYN/bcohen/.local/lib/python3.8/site-packages/taskwarrior_syncall/taskwarrior_side.py", line 157, in add_item
    assert (

AssertionError: Item already has a UUID, try updating it instead of adding it

Error in syncing: KeyError: 'summary'

Hi, I'm getting the following errors when running tw_gcal_sync -t Personal -c <calendar name>

Traceback (most recent call last):
  File "/home/buddhi/.local/bin/tw_gcal_sync", line 71, in <module>
    main()
  File "/home/buddhi/.local/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/buddhi/.local/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/buddhi/.local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/buddhi/.local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/buddhi/.local/bin/tw_gcal_sync", line 63, in main
    aggregator.register_items(gcal_items, "gcal")
  File "/home/buddhi/.local/lib/python3.8/site-packages/taskw_gcal_sync/TWGCalAggregator.py", line 185, in register_items
    item_converted = convert_fun(item)
  File "/home/buddhi/.local/lib/python3.8/site-packages/taskw_gcal_sync/TWGCalAggregator.py", line 501, in convert_gcal_to_tw
    tw_item["description"] = gcal_item["summary"]
KeyError: 'summary'

I'm also getting timezone related errors during synchronisation:

{'summary': 'ELEC4400 L', 'description': 'IMPORTED FROM TASKWARRIOR\n\n* Annotation 1: due_before: today\n\n* status: completed\n* uuid: 0d65c75a-3a53-4850-b828-937e8969d628', 'start': {'dateTime': '2012-07-26T23:00:00.000000Z'}, 'end': {'dateTime': '2012-07-26T23:59:00.000000Z'}, 'updated': '2020-08-23T16:22:27.000000Z'}

Exception: (<class 'googleapiclient.errors.HttpError'>, <HttpError 400 when requesting https://www.googleapis.com/calendar/v3/calendars/w.deseram%40gmail.com/events/tj03rpr2kngngadqg96f1c6nr4?alt=json returned "Missing time zone definition for start time.">, <traceback object at 0x7fcd45b39240>)

Could you please help?

[tw_gcal_sync] [Feature request] Use UDA for event duration?

Hello once again!

Do you think it would be possible to use a user-defined attribute to specify the duration that a gcal event should have? Having a 1-hour default sometimes may take a lot of space in the calendar for some menial tasks.

Thanks!

pd: I think that even the taskwarrior "duration" datatype could be used with little work, as it uses the same format (ISO-8601) as the "duration" attribute of the calendar specification

Invalid syntax: "self.items:"

Dear bergercookie,

Thank you very much for your work, I am curious to use it, however I found myself running into an error at running the help command.

  1. I am installing it on a clean WSL Ubuntu 16.04 system with taskwarrior 2.5.0.
  2. I explicitly verify my python version >=3.5 (with version 3.5.2)
  3. I entered the following installation commands after installing taskwarrior and taskserver.

Perhaps you can indicate what I am doing wrong, or if needed adjust the project to prevent this error:

Commands:

cd ~
mkdir gCalSync
cd gCalSync
python3 -V (returns: Python 3.5.2)
sudo apt-get install -y python3-pip
sudo apt-get -y upgrade
git clone https://github.com/bergercookie/taskw_gcal_sync.git
cd taskw_gcal_sync
pip3 install --user --upgrade requirements.txt
cd ..
pip3 install --user --upgrade requirements.txt
pip3 install --user --upgrade taskw_gcal_sync
tw_gcal_sync --help (returns: tw_gcal_sync: command not found)
tw_gcal_sync (returns: tw_gcal_sync: command not found)

pip3 install --user git+https://github.com/bergercookie/taskw_gcal_sync

tw_gcal_sync --help

Error:

Traceback (most recent call last):
File "/home/a/.local/bin/tw_gcal_sync", line 3, in
from taskw_gcal_sync import TWGCalAggregator
File "/home/a/.local/lib/python3.5/site-packages/taskw_gcal_sync/init.py", line 4, in
from taskw_gcal_sync.TaskWarriorSide import TaskWarriorSide
File "/home/a/.local/lib/python3.5/site-packages/taskw_gcal_sync/TaskWarriorSide.py", line 25
self.items: Dict[str, List[dict]] = []
^
SyntaxError: invalid syntax

Command:
tw_gcal_sync

Error:

Traceback (most recent call last):
File "/home/a/.local/bin/tw_gcal_sync", line 3, in
from taskw_gcal_sync import TWGCalAggregator
File "/home/a/.local/lib/python3.5/site-packages/taskw_gcal_sync/init.py", line 4, in
from taskw_gcal_sync.TaskWarriorSide import TaskWarriorSide
File "/home/a/.local/lib/python3.5/site-packages/taskw_gcal_sync/TaskWarriorSide.py", line 25
self.items: Dict[str, List[dict]] = []
^
SyntaxError: invalid syntax

Full installation transcript
The complete list of output is pasted below, including the commands:

Commands and outputs:

$ cd ~
a@DESKTOP-some_desktop:~$ dir
maintenance
a@DESKTOP-some_desktop:~$ mkdir gCalSync
a@DESKTOP-some_desktop:~$ dir
gCalSync  maintenance
a@DESKTOP-some_desktop:~$ cd gCalSync
a@DESKTOP-some_desktop:~/gCalSync$ python3 -V
Python 3.5.2
a@DESKTOP-some_desktop:~/gCalSync$ sudo apt-get install -y python3-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  binutils build-essential cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5 gcc-5-base libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin
  libc6 libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0 libpython3-dev libpython3.5
  libpython3.5-dev libpython3.5-minimal libpython3.5-stdlib libquadmath0 libstdc++-5-dev libstdc++6 libtsan0 libubsan0 linux-libc-dev make manpages-dev python-pip-whl python3-dev
  python3-setuptools python3-wheel python3.5 python3.5-dev python3.5-minimal
Suggested packages:
  binutils-doc cpp-doc gcc-5-locales debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib
  libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc
  python-setuptools-doc python3.5-venv python3.5-doc binfmt-support
The following NEW packages will be installed:
  binutils build-essential cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
  libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0 libpython3-dev libpython3.5-dev libquadmath0
  libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev python-pip-whl python3-dev python3-pip python3-setuptools python3-wheel python3.5-dev
The following packages will be upgraded:
  gcc-5-base libc6 libpython3.5 libpython3.5-minimal libpython3.5-stdlib libstdc++6 python3.5 python3.5-minimal
8 upgraded, 45 newly installed, 0 to remove and 121 not upgraded.
Need to get 86.1 MB of archives.
After this operation, 201 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libc6 amd64 2.23-0ubuntu11 [2,577 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5 amd64 3.5.2-2ubuntu0~16.04.5 [1,360 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3.5 amd64 3.5.2-2ubuntu0~16.04.5 [165 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-stdlib amd64 3.5.2-2ubuntu0~16.04.5 [2,134 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3.5-minimal amd64 3.5.2-2ubuntu0~16.04.5 [1,598 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-minimal amd64 3.5.2-2ubuntu0~16.04.5 [524 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial/main amd64 libmpc3 amd64 1.0.3-1 [39.7 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gcc-5-base amd64 5.4.0-6ubuntu1~16.04.11 [17.3 kB]
Get:9 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libstdc++6 amd64 5.4.0-6ubuntu1~16.04.11 [393 kB]
Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 binutils amd64 2.26.1-1ubuntu1~16.04.8 [2,312 kB]
Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libc-dev-bin amd64 2.23-0ubuntu11 [68.5 kB]
Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-libc-dev amd64 4.4.0-148.174 [867 kB]
Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libc6-dev amd64 2.23-0ubuntu11 [2,086 kB]
Get:14 http://archive.ubuntu.com/ubuntu xenial/main amd64 libisl15 amd64 0.16.1-1 [524 kB]
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cpp-5 amd64 5.4.0-6ubuntu1~16.04.11 [7,660 kB]
Get:16 http://archive.ubuntu.com/ubuntu xenial/main amd64 cpp amd64 4:5.3.1-1ubuntu1 [27.7 kB]
Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcc1-0 amd64 5.4.0-6ubuntu1~16.04.11 [38.8 kB]
Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgomp1 amd64 5.4.0-6ubuntu1~16.04.11 [55.0 kB]
Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libitm1 amd64 5.4.0-6ubuntu1~16.04.11 [27.4 kB]
Get:20 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libatomic1 amd64 5.4.0-6ubuntu1~16.04.11 [8,896 B]
Get:21 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libasan2 amd64 5.4.0-6ubuntu1~16.04.11 [264 kB]
Get:22 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 liblsan0 amd64 5.4.0-6ubuntu1~16.04.11 [105 kB]
Get:23 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libtsan0 amd64 5.4.0-6ubuntu1~16.04.11 [244 kB]
Get:24 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libubsan0 amd64 5.4.0-6ubuntu1~16.04.11 [95.4 kB]
Get:25 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcilkrts5 amd64 5.4.0-6ubuntu1~16.04.11 [40.1 kB]
Get:26 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libmpx0 amd64 5.4.0-6ubuntu1~16.04.11 [9,748 B]
Get:27 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libquadmath0 amd64 5.4.0-6ubuntu1~16.04.11 [131 kB]
Get:28 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgcc-5-dev amd64 5.4.0-6ubuntu1~16.04.11 [2,229 kB]
Get:29 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gcc-5 amd64 5.4.0-6ubuntu1~16.04.11 [8,417 kB]
Get:30 http://archive.ubuntu.com/ubuntu xenial/main amd64 gcc amd64 4:5.3.1-1ubuntu1 [5,244 B]
Get:31 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libstdc++-5-dev amd64 5.4.0-6ubuntu1~16.04.11 [1,426 kB]
Get:32 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 g++-5 amd64 5.4.0-6ubuntu1~16.04.11 [8,310 kB]
Get:33 http://archive.ubuntu.com/ubuntu xenial/main amd64 g++ amd64 4:5.3.1-1ubuntu1 [1,504 B]
Get:34 http://archive.ubuntu.com/ubuntu xenial/main amd64 make amd64 4.1-6 [151 kB]
Get:35 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdpkg-perl all 1.18.4ubuntu1.5 [195 kB]
Get:36 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 dpkg-dev all 1.18.4ubuntu1.5 [584 kB]
Get:37 http://archive.ubuntu.com/ubuntu xenial/main amd64 build-essential amd64 12.1ubuntu2 [4,758 B]
Get:38 http://archive.ubuntu.com/ubuntu xenial/main amd64 libfakeroot amd64 1.20.2-1ubuntu1 [25.5 kB]
Get:39 http://archive.ubuntu.com/ubuntu xenial/main amd64 fakeroot amd64 1.20.2-1ubuntu1 [61.8 kB]
Get:40 http://archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-diff-perl all 1.19.03-1 [47.6 kB]
Get:41 http://archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-diff-xs-perl amd64 0.04-4build1 [11.0 kB]
Get:42 http://archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB]
Get:43 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libexpat1-dev amd64 2.1.0-7ubuntu0.16.04.3 [115 kB]
Get:44 http://archive.ubuntu.com/ubuntu xenial/main amd64 libfile-fcntllock-perl amd64 0.22-3 [32.0 kB]
Get:45 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-dev amd64 3.5.2-2ubuntu0~16.04.5 [37.3 MB]
76% [45 libpython3.5-dev 18.5 MB/37.3 MB 50%]                                                                                                                                         901 kB/s 25s^76% [45 libpython3.5-dev 19.0 MB/37.3 MB 51%]                                                                                                                                         901 kB/s 24s^77% [45 libpython3.5-dev 19.8 MB/37.3 MB 53%]                                                                                                                                         901 kB/s 23s^77% [45 libpython3.5-dev 20.6 MB/37.3 MB 55%]                                                                                                                                         901 kB/s 22s^79% [45 libpython3.5-dev 22.4 MB/37.3 MB 60%]                                                                                                                                         901 kB/s 20s^81% [45 libpython3.5-dev 23.9 MB/37.3 MB 64%]                                                                                                                                         901 kB/s 19s^Get:46 http://archive.ubuntu.com/ubuntu xenial/main amd64 libpython3-dev amd64 3.5.1-3 [6,926 B]
Get:47 http://archive.ubuntu.com/ubuntu xenial/main amd64 manpages-dev all 4.04-2 [2,048 kB]
Get:48 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 python-pip-whl all 8.1.1-2ubuntu0.4 [1,110 kB]
Get:49 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3.5-dev amd64 3.5.2-2ubuntu0~16.04.5 [413 kB]
Get:50 http://archive.ubuntu.com/ubuntu xenial/main amd64 python3-dev amd64 3.5.1-3 [1,186 B]
Get:51 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 python3-pip all 8.1.1-2ubuntu0.4 [109 kB]
Get:52 http://archive.ubuntu.com/ubuntu xenial/main amd64 python3-setuptools all 20.7.0-1 [88.0 kB]
Get:53 http://archive.ubuntu.com/ubuntu xenial/universe amd64 python3-wheel all 0.29.0-1 [48.1 kB]
Fetched 86.1 MB in 1min 12s (1,187 kB/s)
Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 27345 files and directories currently installed.)
Preparing to unpack .../libc6_2.23-0ubuntu11_amd64.deb ...
Unpacking libc6:amd64 (2.23-0ubuntu11) over (2.23-0ubuntu10) ...
Setting up libc6:amd64 (2.23-0ubuntu11) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
(Reading database ... 27345 files and directories currently installed.)
Preparing to unpack .../libpython3.5_3.5.2-2ubuntu0~16.04.5_amd64.deb ...
Unpacking libpython3.5:amd64 (3.5.2-2ubuntu0~16.04.5) over (3.5.2-2ubuntu0~16.04.4) ...
Preparing to unpack .../python3.5_3.5.2-2ubuntu0~16.04.5_amd64.deb ...
Unpacking python3.5 (3.5.2-2ubuntu0~16.04.5) over (3.5.2-2ubuntu0~16.04.4) ...
Preparing to unpack .../libpython3.5-stdlib_3.5.2-2ubuntu0~16.04.5_amd64.deb ...
Unpacking libpython3.5-stdlib:amd64 (3.5.2-2ubuntu0~16.04.5) over (3.5.2-2ubuntu0~16.04.4) ...
^[[1;3APreparing to unpack .../python3.5-minimal_3.5.2-2ubuntu0~16.04.5_amd64.deb ...
Unpacking python3.5-minimal (3.5.2-2ubuntu0~16.04.5) over (3.5.2-2ubuntu0~16.04.4) ...
Preparing to unpack .../libpython3.5-minimal_3.5.2-2ubuntu0~16.04.5_amd64.deb ...
Unpacking libpython3.5-minimal:amd64 (3.5.2-2ubuntu0~16.04.5) over (3.5.2-2ubuntu0~16.04.4) ...
Selecting previously unselected package libmpc3:amd64.
Preparing to unpack .../libmpc3_1.0.3-1_amd64.deb ...
Unpacking libmpc3:amd64 (1.0.3-1) ...
Preparing to unpack .../gcc-5-base_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking gcc-5-base:amd64 (5.4.0-6ubuntu1~16.04.11) over (5.4.0-6ubuntu1~16.04.10) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up gcc-5-base:amd64 (5.4.0-6ubuntu1~16.04.11) ...
(Reading database ... 27350 files and directories currently installed.)
Preparing to unpack .../libstdc++6_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libstdc++6:amd64 (5.4.0-6ubuntu1~16.04.11) over (5.4.0-6ubuntu1~16.04.10) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Setting up libstdc++6:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Selecting previously unselected package binutils.
(Reading database ... 27350 files and directories currently installed.)
Preparing to unpack .../binutils_2.26.1-1ubuntu1~16.04.8_amd64.deb ...
Unpacking binutils (2.26.1-1ubuntu1~16.04.8) ...
Selecting previously unselected package libc-dev-bin.
Preparing to unpack .../libc-dev-bin_2.23-0ubuntu11_amd64.deb ...
Unpacking libc-dev-bin (2.23-0ubuntu11) ...
Selecting previously unselected package linux-libc-dev:amd64.
Preparing to unpack .../linux-libc-dev_4.4.0-148.174_amd64.deb ...
Unpacking linux-libc-dev:amd64 (4.4.0-148.174) ...
Selecting previously unselected package libc6-dev:amd64.
Preparing to unpack .../libc6-dev_2.23-0ubuntu11_amd64.deb ...
Unpacking libc6-dev:amd64 (2.23-0ubuntu11) ...
Selecting previously unselected package libisl15:amd64.
Preparing to unpack .../libisl15_0.16.1-1_amd64.deb ...
Unpacking libisl15:amd64 (0.16.1-1) ...
Selecting previously unselected package cpp-5.
Preparing to unpack .../cpp-5_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking cpp-5 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package cpp.
Preparing to unpack .../cpp_4%3a5.3.1-1ubuntu1_amd64.deb ...
Unpacking cpp (4:5.3.1-1ubuntu1) ...
Selecting previously unselected package libcc1-0:amd64.
Preparing to unpack .../libcc1-0_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libcc1-0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package libgomp1:amd64.
Preparing to unpack .../libgomp1_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libgomp1:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package libitm1:amd64.
Preparing to unpack .../libitm1_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libitm1:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package libatomic1:amd64.
Preparing to unpack .../libatomic1_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libatomic1:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package libasan2:amd64.
Preparing to unpack .../libasan2_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libasan2:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package liblsan0:amd64.
Preparing to unpack .../liblsan0_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking liblsan0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package libtsan0:amd64.
Preparing to unpack .../libtsan0_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libtsan0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package libubsan0:amd64.
Preparing to unpack .../libubsan0_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libubsan0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package libcilkrts5:amd64.
Preparing to unpack .../libcilkrts5_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libcilkrts5:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package libmpx0:amd64.
Preparing to unpack .../libmpx0_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libmpx0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package libquadmath0:amd64.
Preparing to unpack .../libquadmath0_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libquadmath0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package libgcc-5-dev:amd64.
Preparing to unpack .../libgcc-5-dev_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libgcc-5-dev:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package gcc-5.
Preparing to unpack .../gcc-5_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking gcc-5 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package gcc.
Preparing to unpack .../gcc_4%3a5.3.1-1ubuntu1_amd64.deb ...
Unpacking gcc (4:5.3.1-1ubuntu1) ...
Selecting previously unselected package libstdc++-5-dev:amd64.
Preparing to unpack .../libstdc++-5-dev_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libstdc++-5-dev:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package g++-5.
Preparing to unpack .../g++-5_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking g++-5 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package g++.
Preparing to unpack .../g++_4%3a5.3.1-1ubuntu1_amd64.deb ...
Unpacking g++ (4:5.3.1-1ubuntu1) ...
Selecting previously unselected package make.
Preparing to unpack .../archives/make_4.1-6_amd64.deb ...
Unpacking make (4.1-6) ...
Selecting previously unselected package libdpkg-perl.
Preparing to unpack .../libdpkg-perl_1.18.4ubuntu1.5_all.deb ...
Unpacking libdpkg-perl (1.18.4ubuntu1.5) ...
Selecting previously unselected package dpkg-dev.
Preparing to unpack .../dpkg-dev_1.18.4ubuntu1.5_all.deb ...
Unpacking dpkg-dev (1.18.4ubuntu1.5) ...
Selecting previously unselected package build-essential.
Preparing to unpack .../build-essential_12.1ubuntu2_amd64.deb ...
Unpacking build-essential (12.1ubuntu2) ...
Selecting previously unselected package libfakeroot:amd64.
Preparing to unpack .../libfakeroot_1.20.2-1ubuntu1_amd64.deb ...
Unpacking libfakeroot:amd64 (1.20.2-1ubuntu1) ...
Selecting previously unselected package fakeroot.
Preparing to unpack .../fakeroot_1.20.2-1ubuntu1_amd64.deb ...
Unpacking fakeroot (1.20.2-1ubuntu1) ...
Selecting previously unselected package libalgorithm-diff-perl.
Preparing to unpack .../libalgorithm-diff-perl_1.19.03-1_all.deb ...
Unpacking libalgorithm-diff-perl (1.19.03-1) ...
Selecting previously unselected package libalgorithm-diff-xs-perl.
Preparing to unpack .../libalgorithm-diff-xs-perl_0.04-4build1_amd64.deb ...
Unpacking libalgorithm-diff-xs-perl (0.04-4build1) ...
Selecting previously unselected package libalgorithm-merge-perl.
Preparing to unpack .../libalgorithm-merge-perl_0.08-3_all.deb ...
Unpacking libalgorithm-merge-perl (0.08-3) ...
Selecting previously unselected package libexpat1-dev:amd64.
Preparing to unpack .../libexpat1-dev_2.1.0-7ubuntu0.16.04.3_amd64.deb ...
Unpacking libexpat1-dev:amd64 (2.1.0-7ubuntu0.16.04.3) ...
Selecting previously unselected package libfile-fcntllock-perl.
Preparing to unpack .../libfile-fcntllock-perl_0.22-3_amd64.deb ...
Unpacking libfile-fcntllock-perl (0.22-3) ...
Selecting previously unselected package libpython3.5-dev:amd64.
Preparing to unpack .../libpython3.5-dev_3.5.2-2ubuntu0~16.04.5_amd64.deb ...
Unpacking libpython3.5-dev:amd64 (3.5.2-2ubuntu0~16.04.5) ...
Selecting previously unselected package libpython3-dev:amd64.
Preparing to unpack .../libpython3-dev_3.5.1-3_amd64.deb ...
Unpacking libpython3-dev:amd64 (3.5.1-3) ...
Selecting previously unselected package manpages-dev.
Preparing to unpack .../manpages-dev_4.04-2_all.deb ...
Unpacking manpages-dev (4.04-2) ...
Selecting previously unselected package python-pip-whl.
Preparing to unpack .../python-pip-whl_8.1.1-2ubuntu0.4_all.deb ...
Unpacking python-pip-whl (8.1.1-2ubuntu0.4) ...
Selecting previously unselected package python3.5-dev.
Preparing to unpack .../python3.5-dev_3.5.2-2ubuntu0~16.04.5_amd64.deb ...
Unpacking python3.5-dev (3.5.2-2ubuntu0~16.04.5) ...
Selecting previously unselected package python3-dev.
Preparing to unpack .../python3-dev_3.5.1-3_amd64.deb ...
Unpacking python3-dev (3.5.1-3) ...
Selecting previously unselected package python3-pip.
Preparing to unpack .../python3-pip_8.1.1-2ubuntu0.4_all.deb ...
Unpacking python3-pip (8.1.1-2ubuntu0.4) ...
Selecting previously unselected package python3-setuptools.
Preparing to unpack .../python3-setuptools_20.7.0-1_all.deb ...
Unpacking python3-setuptools (20.7.0-1) ...
Selecting previously unselected package python3-wheel.
Preparing to unpack .../python3-wheel_0.29.0-1_all.deb ...
Unpacking python3-wheel (0.29.0-1) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up libpython3.5-minimal:amd64 (3.5.2-2ubuntu0~16.04.5) ...
Setting up libpython3.5-stdlib:amd64 (3.5.2-2ubuntu0~16.04.5) ...
Setting up libpython3.5:amd64 (3.5.2-2ubuntu0~16.04.5) ...
Setting up python3.5-minimal (3.5.2-2ubuntu0~16.04.5) ...
Setting up python3.5 (3.5.2-2ubuntu0~16.04.5) ...
Setting up libmpc3:amd64 (1.0.3-1) ...
Setting up binutils (2.26.1-1ubuntu1~16.04.8) ...
Setting up libc-dev-bin (2.23-0ubuntu11) ...
Setting up linux-libc-dev:amd64 (4.4.0-148.174) ...
Setting up libc6-dev:amd64 (2.23-0ubuntu11) ...
Setting up libisl15:amd64 (0.16.1-1) ...
Setting up cpp-5 (5.4.0-6ubuntu1~16.04.11) ...
Setting up cpp (4:5.3.1-1ubuntu1) ...
Setting up libcc1-0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up libgomp1:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up libitm1:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up libatomic1:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up libasan2:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up liblsan0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up libtsan0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up libubsan0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up libcilkrts5:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up libmpx0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up libquadmath0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up libgcc-5-dev:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up gcc-5 (5.4.0-6ubuntu1~16.04.11) ...
Setting up gcc (4:5.3.1-1ubuntu1) ...
Setting up libstdc++-5-dev:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up g++-5 (5.4.0-6ubuntu1~16.04.11) ...
Setting up g++ (4:5.3.1-1ubuntu1) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
Setting up make (4.1-6) ...
Setting up libdpkg-perl (1.18.4ubuntu1.5) ...
Setting up dpkg-dev (1.18.4ubuntu1.5) ...
Setting up build-essential (12.1ubuntu2) ...
Setting up libfakeroot:amd64 (1.20.2-1ubuntu1) ...
Setting up fakeroot (1.20.2-1ubuntu1) ...
update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
Setting up libalgorithm-diff-perl (1.19.03-1) ...
Setting up libalgorithm-diff-xs-perl (0.04-4build1) ...
Setting up libalgorithm-merge-perl (0.08-3) ...
Setting up libexpat1-dev:amd64 (2.1.0-7ubuntu0.16.04.3) ...
Setting up libfile-fcntllock-perl (0.22-3) ...
Setting up libpython3.5-dev:amd64 (3.5.2-2ubuntu0~16.04.5) ...
Setting up libpython3-dev:amd64 (3.5.1-3) ...
Setting up manpages-dev (4.04-2) ...
Setting up python-pip-whl (8.1.1-2ubuntu0.4) ...
Setting up python3.5-dev (3.5.2-2ubuntu0~16.04.5) ...
Setting up python3-dev (3.5.1-3) ...
Setting up python3-pip (8.1.1-2ubuntu0.4) ...
Setting up python3-setuptools (20.7.0-1) ...
Setting up python3-wheel (0.29.0-1) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
a@DESKTOP-some_desktop:~/gCalSync$ sudo apt-get -y upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  ubuntu-minimal
The following packages will be upgraded:
  apparmor apt apt-transport-https apt-utils base-files bash bind9-host busybox-initramfs busybox-static ca-certificates cloud-init cloud-initramfs-copymods cloud-initramfs-dyn-netconf
  console-setup console-setup-linux curl debconf debconf-i18n distro-info-data dnsutils dpkg file friendly-recovery gettext-base git git-man initramfs-tools initramfs-tools-bin
  initramfs-tools-core iproute2 keyboard-configuration kmod krb5-locales libapparmor-perl libapparmor1 libapt-inst2.0 libapt-pkg5.0 libasprintf0v5 libbind9-140 libc-bin libcurl3-gnutls
  libdns-export162 libdns162 libglib2.0-0 libglib2.0-data libgssapi-krb5-2 libisc-export160 libisc160 libisccc140 libisccfg140 libk5crypto3 libkmod2 libkrb5-3 libkrb5support0 libldap-2.4-2
  liblwres141 liblxc1 libmagic1 libmspack0 libpam-systemd libpci3 libperl5.22 libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libsasl2-2 libsasl2-modules libsasl2-modules-db
  libsqlite3-0 libssl1.0.0 libsystemd0 libudev1 libx11-6 libx11-data libxslt1.1 locales login lshw lxc-common multiarch-support ntfs-3g open-iscsi openssh-client openssh-server
  openssh-sftp-server openssl overlayroot passwd pciutils perl perl-base perl-modules-5.22 policykit-1 python-apt-common python3-apt python3-cryptography python3-distupgrade python3-requests
  python3-software-properties python3-update-manager python3-urllib3 rsyslog snapd software-properties-common sosreport squashfs-tools sudo systemd systemd-sysv tzdata ubuntu-core-launcher
  ubuntu-release-upgrader-core ubuntu-standard udev uidmap unattended-upgrades update-manager-core update-notifier-common ureadahead wget
120 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 57.8 MB of archives.
After this operation, 14.9 MB disk space will be freed.
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 base-files amd64 9.4ubuntu4.8 [69.4 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 bash amd64 4.3-14ubuntu1.3 [583 kB]
Get:3 http://security.ubuntu.com/ubuntu xenial-security/main amd64 unattended-upgrades all 0.90ubuntu0.10 [32.3 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 dpkg amd64 1.18.4ubuntu1.5 [2,085 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 login amd64 1:4.2-3.1ubuntu5.4 [304 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libperl5.22 amd64 5.22.1-9ubuntu0.6 [3,405 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 perl amd64 5.22.1-9ubuntu0.6 [237 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 perl-base amd64 5.22.1-9ubuntu0.6 [1,283 kB]
Get:9 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 perl-modules-5.22 all 5.22.1-9ubuntu0.6 [2,629 kB]
Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 debconf-i18n all 1.5.58ubuntu2 [206 kB]
Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 debconf all 1.5.58ubuntu2 [136 kB]
Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 locales all 2.23-0ubuntu11 [3,196 kB]
Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libc-bin amd64 2.23-0ubuntu11 [631 kB]
Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapt-pkg5.0 amd64 1.2.31 [712 kB]
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapt-inst2.0 amd64 1.2.31 [55.6 kB]
Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt amd64 1.2.31 [1,087 kB]
Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt-utils amd64 1.2.31 [196 kB]
Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsystemd0 amd64 229-4ubuntu21.21 [204 kB]
Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpam-systemd amd64 229-4ubuntu21.21 [115 kB]
Get:20 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 systemd amd64 229-4ubuntu21.21 [3,629 kB]
Get:21 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 udev amd64 229-4ubuntu21.21 [993 kB]
Get:22 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libudev1 amd64 229-4ubuntu21.21 [53.6 kB]
Get:23 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 kmod amd64 22-1ubuntu5.2 [88.6 kB]
Get:24 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libkmod2 amd64 22-1ubuntu5.2 [39.9 kB]
Get:25 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 friendly-recovery all 0.2.31ubuntu2 [9,662 B]
Get:26 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 initramfs-tools all 0.122ubuntu8.14 [8,938 B]
Get:27 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 initramfs-tools-core all 0.122ubuntu8.14 [44.9 kB]
Get:28 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 initramfs-tools-bin amd64 0.122ubuntu8.14 [9,776 B]
Get:29 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 busybox-initramfs amd64 1:1.22.0-15ubuntu1.4 [179 kB]
Get:30 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 systemd-sysv amd64 229-4ubuntu21.21 [11.1 kB]
Get:31 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapparmor1 amd64 2.10.95-0ubuntu2.10 [29.7 kB]
Get:32 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libglib2.0-0 amd64 2.48.2-0ubuntu4.1 [1,120 kB]
Get:33 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ntfs-3g amd64 1:2015.3.14AR.1-1ubuntu0.3 [465 kB]
Get:34 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 open-iscsi amd64 2.0.873+git0.3b4b4500-14ubuntu3.7 [335 kB]
Get:35 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapparmor-perl amd64 2.10.95-0ubuntu2.10 [31.6 kB]
Get:36 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apparmor amd64 2.10.95-0ubuntu2.10 [451 kB]
Get:37 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libssl1.0.0 amd64 1.0.2g-1ubuntu4.15 [1,084 kB]
Get:38 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssl amd64 1.0.2g-1ubuntu4.15 [492 kB]
Get:39 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ca-certificates all 20170717~16.04.2 [167 kB]
Get:40 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-sftp-server amd64 1:7.2p2-4ubuntu2.8 [38.9 kB]
Get:41 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgssapi-krb5-2 amd64 1.13.2+dfsg-5ubuntu2.1 [120 kB]
Get:42 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libkrb5-3 amd64 1.13.2+dfsg-5ubuntu2.1 [273 kB]
Get:43 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libkrb5support0 amd64 1.13.2+dfsg-5ubuntu2.1 [31.2 kB]
Get:44 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libk5crypto3 amd64 1.13.2+dfsg-5ubuntu2.1 [81.3 kB]
Get:45 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-server amd64 1:7.2p2-4ubuntu2.8 [335 kB]
Get:46 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 passwd amd64 1:4.2-3.1ubuntu5.4 [780 kB]
Get:47 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-client amd64 1:7.2p2-4ubuntu2.8 [590 kB]
Get:48 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 squashfs-tools amd64 1:4.3-3ubuntu2.16.04.3 [105 kB]
Get:49 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-core-launcher amd64 2.38 [1,560 B]
Get:50 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 snapd amd64 2.38 [13.9 MB]
Get:51 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-apt-common all 1.1.0~beta1ubuntu0.16.04.4 [16.0 kB]
Get:52 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-apt amd64 1.1.0~beta1ubuntu0.16.04.4 [138 kB]
Get:53 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-release-upgrader-core all 1:16.04.26 [29.9 kB]
Get:54 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-distupgrade all 1:16.04.26 [104 kB]
Get:55 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 update-manager-core all 1:16.04.15 [5,498 B]
Get:56 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-update-manager all 1:16.04.15 [33.4 kB]
Get:57 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 update-notifier-common all 3.168.10 [163 kB]
Get:58 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 multiarch-support amd64 2.23-0ubuntu11 [6,822 B]
Get:59 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 tzdata all 2019a-0ubuntu0.16.04 [167 kB]
Get:60 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 console-setup-linux all 1.108ubuntu15.5 [984 kB]
Get:61 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 console-setup all 1.108ubuntu15.5 [117 kB]
Get:62 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 keyboard-configuration all 1.108ubuntu15.5 [658 kB]
Get:63 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 distro-info-data all 0.28ubuntu0.12 [4,638 B]
Get:64 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 file amd64 1:5.25-2ubuntu1.2 [21.2 kB]
Get:65 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libmagic1 amd64 1:5.25-2ubuntu1.2 [216 kB]
Get:66 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 iproute2 amd64 4.3.0-1ubuntu3.16.04.5 [523 kB]
Get:67 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libisc-export160 amd64 1:9.10.3.dfsg.P4-8ubuntu1.14 [153 kB]
Get:68 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdns-export162 amd64 1:9.10.3.dfsg.P4-8ubuntu1.14 [667 kB]
Get:69 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsqlite3-0 amd64 3.11.0-1ubuntu1.1 [396 kB]
Get:70 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 rsyslog amd64 8.16.0-1ubuntu3.1 [366 kB]
Get:71 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 sudo amd64 1.8.16-0ubuntu1.6 [390 kB]
Get:72 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ureadahead amd64 0.100.0-19.1 [19.4 kB]
Get:73 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 curl amd64 7.47.0-1ubuntu2.12 [139 kB]
Get:74 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsasl2-modules-db amd64 2.1.26.dfsg1-14ubuntu0.1 [14.5 kB]
Get:75 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsasl2-2 amd64 2.1.26.dfsg1-14ubuntu0.1 [48.6 kB]
Get:76 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libldap-2.4-2 amd64 2.4.42+dfsg-2ubuntu3.5 [161 kB]
Get:77 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcurl3-gnutls amd64 7.47.0-1ubuntu2.12 [185 kB]
Get:78 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt-transport-https amd64 1.2.31 [26.6 kB]
Get:79 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 bind9-host amd64 1:9.10.3.dfsg.P4-8ubuntu1.14 [38.4 kB]
Get:80 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 dnsutils amd64 1:9.10.3.dfsg.P4-8ubuntu1.14 [89.0 kB]
Get:81 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libisc160 amd64 1:9.10.3.dfsg.P4-8ubuntu1.14 [216 kB]
Get:82 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdns162 amd64 1:9.10.3.dfsg.P4-8ubuntu1.14 [880 kB]
Get:83 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libisccc140 amd64 1:9.10.3.dfsg.P4-8ubuntu1.14 [16.3 kB]
Get:84 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libisccfg140 amd64 1:9.10.3.dfsg.P4-8ubuntu1.14 [40.5 kB]
Get:85 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 liblwres141 amd64 1:9.10.3.dfsg.P4-8ubuntu1.14 [34.1 kB]
Get:86 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libbind9-140 amd64 1:9.10.3.dfsg.P4-8ubuntu1.14 [23.6 kB]
Get:87 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 busybox-static amd64 1:1.22.0-15ubuntu1.4 [874 kB]
Get:88 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libasprintf0v5 amd64 0.19.7-2ubuntu3.1 [6,568 B]
Get:89 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gettext-base amd64 0.19.7-2ubuntu3.1 [48.0 kB]
Get:90 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 krb5-locales all 1.13.2+dfsg-5ubuntu2.1 [13.6 kB]
Get:91 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libglib2.0-data all 2.48.2-0ubuntu4.1 [132 kB]
Get:92 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 pciutils amd64 1:3.3.1-1.1ubuntu1.3 [254 kB]
Get:93 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpci3 amd64 1:3.3.1-1.1ubuntu1.3 [24.3 kB]
Get:94 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpolkit-gobject-1-0 amd64 0.105-14.1ubuntu0.5 [36.6 kB]
Get:95 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsasl2-modules amd64 2.1.26.dfsg1-14ubuntu0.1 [47.5 kB]
Get:96 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libx11-data all 2:1.6.3-1ubuntu2.1 [113 kB]
Get:97 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libx11-6 amd64 2:1.6.3-1ubuntu2.1 [570 kB]
Get:98 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 lshw amd64 02.17-1.1ubuntu3.6 [215 kB]
Get:99 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 wget amd64 1.17.1-1ubuntu1.5 [299 kB]
Get:100 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-standard amd64 1.361.3 [2,744 B]
Get:101 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 git-man all 1:2.7.4-0ubuntu1.6 [736 kB]
Get:102 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 git amd64 1:2.7.4-0ubuntu1.6 [3,176 kB]
Get:103 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 liblxc1 amd64 2.0.11-0ubuntu1~16.04.3 [249 kB]
Get:104 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 lxc-common amd64 2.0.11-0ubuntu1~16.04.3 [43.6 kB]
Get:105 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libmspack0 amd64 0.5-1ubuntu0.16.04.3 [37.4 kB]
Get:106 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpolkit-agent-1-0 amd64 0.105-14.1ubuntu0.5 [14.8 kB]
Get:107 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpolkit-backend-1-0 amd64 0.105-14.1ubuntu0.5 [36.2 kB]
Get:108 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libxslt1.1 amd64 1.1.28-2.1ubuntu0.2 [146 kB]
Get:109 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 policykit-1 amd64 0.105-14.1ubuntu0.5 [52.8 kB]
Get:110 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-cryptography amd64 1.2.3-1ubuntu0.2 [198 kB]
Get:111 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-urllib3 all 1.13.1-2ubuntu0.16.04.2 [58.1 kB]
Get:112 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-requests all 2.9.1-3ubuntu0.1 [55.8 kB]
Get:113 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 software-properties-common all 0.96.20.8 [9,440 B]
Get:114 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-software-properties all 0.96.20.8 [20.2 kB]
Get:115 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 sosreport amd64 3.6-1ubuntu0.16.04.2 [138 kB]
Get:116 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 uidmap amd64 1:4.2-3.1ubuntu5.4 [64.5 kB]
Get:117 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cloud-init all 18.5-45-g3554ffe8-0ubuntu1~16.04.1 [394 kB]
Get:118 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cloud-initramfs-copymods all 0.27ubuntu1.6 [4,380 B]
Get:119 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cloud-initramfs-dyn-netconf all 0.27ubuntu1.6 [6,892 B]
Get:120 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 overlayroot all 0.27ubuntu1.6 [15.7 kB]
Fetched 57.8 MB in 1min 3s (913 kB/s)
Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 32848 files and directories currently installed.)
Preparing to unpack .../base-files_9.4ubuntu4.8_amd64.deb ...
Unpacking base-files (9.4ubuntu4.8) over (9.4ubuntu4.7) ...
Processing triggers for plymouth-theme-ubuntu-text (0.9.2-3ubuntu13.5) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for install-info (6.1.0.dfsg.1-5) ...
Processing triggers for initramfs-tools (0.122ubuntu8.11) ...
Setting up base-files (9.4ubuntu4.8) ...
Installing new version of config file /etc/issue ...
Installing new version of config file /etc/issue.net ...
Installing new version of config file /etc/lsb-release ...
Processing triggers for plymouth-theme-ubuntu-text (0.9.2-3ubuntu13.5) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.122ubuntu8.11) ...
(Reading database ... 32848 files and directories currently installed.)
Preparing to unpack .../bash_4.3-14ubuntu1.3_amd64.deb ...
Unpacking bash (4.3-14ubuntu1.3) over (4.3-14ubuntu1.2) ...
Processing triggers for install-info (6.1.0.dfsg.1-5) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up bash (4.3-14ubuntu1.3) ...
update-alternatives: using /usr/share/man/man7/bash-builtins.7.gz to provide /usr/share/man/man7/builtins.7.gz (builtins.7.gz) in auto mode
(Reading database ... 32848 files and directories currently installed.)
Preparing to unpack .../dpkg_1.18.4ubuntu1.5_amd64.deb ...
Unpacking dpkg (1.18.4ubuntu1.5) over (1.18.4ubuntu1.4) ...
Setting up dpkg (1.18.4ubuntu1.5) ...
Processing triggers for man-db (2.7.5-1) ...
(Reading database ... 32848 files and directories currently installed.)
Preparing to unpack .../login_1%3a4.2-3.1ubuntu5.4_amd64.deb ...
Unpacking login (1:4.2-3.1ubuntu5.4) over (1:4.2-3.1ubuntu5.3) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up login (1:4.2-3.1ubuntu5.4) ...
(Reading database ... 32848 files and directories currently installed.)
Preparing to unpack .../libperl5.22_5.22.1-9ubuntu0.6_amd64.deb ...
Unpacking libperl5.22:amd64 (5.22.1-9ubuntu0.6) over (5.22.1-9ubuntu0.5) ...
Preparing to unpack .../perl_5.22.1-9ubuntu0.6_amd64.deb ...
Unpacking perl (5.22.1-9ubuntu0.6) over (5.22.1-9ubuntu0.5) ...
Preparing to unpack .../perl-base_5.22.1-9ubuntu0.6_amd64.deb ...
Unpacking perl-base (5.22.1-9ubuntu0.6) over (5.22.1-9ubuntu0.5) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up perl-base (5.22.1-9ubuntu0.6) ...
(Reading database ... 32848 files and directories currently installed.)
Preparing to unpack .../perl-modules-5.22_5.22.1-9ubuntu0.6_all.deb ...
Unpacking perl-modules-5.22 (5.22.1-9ubuntu0.6) over (5.22.1-9ubuntu0.5) ...
Preparing to unpack .../debconf-i18n_1.5.58ubuntu2_all.deb ...
Unpacking debconf-i18n (1.5.58ubuntu2) over (1.5.58ubuntu1) ...
Preparing to unpack .../debconf_1.5.58ubuntu2_all.deb ...
Unpacking debconf (1.5.58ubuntu2) over (1.5.58ubuntu1) ...
Setting up debconf (1.5.58ubuntu2) ...
Processing triggers for man-db (2.7.5-1) ...
(Reading database ... 32848 files and directories currently installed.)
Preparing to unpack .../locales_2.23-0ubuntu11_all.deb ...
Unpacking locales (2.23-0ubuntu11) over (2.23-0ubuntu10) ...
Preparing to unpack .../libc-bin_2.23-0ubuntu11_amd64.deb ...
Unpacking libc-bin (2.23-0ubuntu11) over (2.23-0ubuntu10) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up libc-bin (2.23-0ubuntu11) ...
(Reading database ... 32848 files and directories currently installed.)
Preparing to unpack .../libapt-pkg5.0_1.2.31_amd64.deb ...
Unpacking libapt-pkg5.0:amd64 (1.2.31) over (1.2.27) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Setting up libapt-pkg5.0:amd64 (1.2.31) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
(Reading database ... 32848 files and directories currently installed.)
Preparing to unpack .../libapt-inst2.0_1.2.31_amd64.deb ...
Unpacking libapt-inst2.0:amd64 (1.2.31) over (1.2.27) ...
Preparing to unpack .../archives/apt_1.2.31_amd64.deb ...
Unpacking apt (1.2.31) over (1.2.27) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up apt (1.2.31) ...
Installing new version of config file /etc/apt/apt.conf.d/01autoremove ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
(Reading database ... 32857 files and directories currently installed.)
Preparing to unpack .../apt-utils_1.2.31_amd64.deb ...
Unpacking apt-utils (1.2.31) over (1.2.27) ...
Preparing to unpack .../libsystemd0_229-4ubuntu21.21_amd64.deb ...
Unpacking libsystemd0:amd64 (229-4ubuntu21.21) over (229-4ubuntu21.4) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Setting up libsystemd0:amd64 (229-4ubuntu21.21) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
(Reading database ... 32857 files and directories currently installed.)
Preparing to unpack .../libpam-systemd_229-4ubuntu21.21_amd64.deb ...
Unpacking libpam-systemd:amd64 (229-4ubuntu21.21) over (229-4ubuntu21.4) ...
Preparing to unpack .../systemd_229-4ubuntu21.21_amd64.deb ...
Unpacking systemd (229-4ubuntu21.21) over (229-4ubuntu21.4) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for dbus (1.10.6-1ubuntu3.3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Setting up systemd (229-4ubuntu21.21) ...
Initializing machine ID from random generator.
addgroup: The group `systemd-journal' already exists as a system group. Exiting.
Operation failed: No such file or directory
[/usr/lib/tmpfiles.d/tmp.conf:15] Failed to replace specifiers: /tmp/systemd-private-%b-*
[/usr/lib/tmpfiles.d/tmp.conf:16] Failed to replace specifiers: /tmp/systemd-private-%b-*/tmp
[/usr/lib/tmpfiles.d/tmp.conf:17] Failed to replace specifiers: /var/tmp/systemd-private-%b-*
[/usr/lib/tmpfiles.d/tmp.conf:18] Failed to replace specifiers: /var/tmp/systemd-private-%b-*/tmp
[/usr/lib/tmpfiles.d/var.conf:14] Duplicate line for path "/var/log", ignoring.
(Reading database ... 32857 files and directories currently installed.)
Preparing to unpack .../udev_229-4ubuntu21.21_amd64.deb ...
Unpacking udev (229-4ubuntu21.21) over (229-4ubuntu21.4) ...
Preparing to unpack .../libudev1_229-4ubuntu21.21_amd64.deb ...
Unpacking libudev1:amd64 (229-4ubuntu21.21) over (229-4ubuntu21.4) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu21.21) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Setting up libudev1:amd64 (229-4ubuntu21.21) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
(Reading database ... 32857 files and directories currently installed.)
Preparing to unpack .../kmod_22-1ubuntu5.2_amd64.deb ...
Unpacking kmod (22-1ubuntu5.2) over (22-1ubuntu5) ...
Preparing to unpack .../libkmod2_22-1ubuntu5.2_amd64.deb ...
Unpacking libkmod2:amd64 (22-1ubuntu5.2) over (22-1ubuntu5) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Setting up libkmod2:amd64 (22-1ubuntu5.2) ...
Processing triggers for systemd (229-4ubuntu21.21) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
(Reading database ... 32857 files and directories currently installed.)
Preparing to unpack .../friendly-recovery_0.2.31ubuntu2_all.deb ...
Removed symlink /etc/systemd/system/sysinit.target.wants/friendly-recovery.service.
Unpacking friendly-recovery (0.2.31ubuntu2) over (0.2.31ubuntu1) ...
Preparing to unpack .../initramfs-tools_0.122ubuntu8.14_all.deb ...
Unpacking initramfs-tools (0.122ubuntu8.14) over (0.122ubuntu8.11) ...
Preparing to unpack .../initramfs-tools-core_0.122ubuntu8.14_all.deb ...
Unpacking initramfs-tools-core (0.122ubuntu8.14) over (0.122ubuntu8.11) ...
Preparing to unpack .../initramfs-tools-bin_0.122ubuntu8.14_amd64.deb ...
Unpacking initramfs-tools-bin (0.122ubuntu8.14) over (0.122ubuntu8.11) ...
Preparing to unpack .../busybox-initramfs_1%3a1.22.0-15ubuntu1.4_amd64.deb ...
Unpacking busybox-initramfs (1:1.22.0-15ubuntu1.4) over (1:1.22.0-15ubuntu1) ...
Preparing to unpack .../systemd-sysv_229-4ubuntu21.21_amd64.deb ...
Unpacking systemd-sysv (229-4ubuntu21.21) over (229-4ubuntu21.4) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up systemd-sysv (229-4ubuntu21.21) ...
(Reading database ... 32859 files and directories currently installed.)
Preparing to unpack .../libapparmor1_2.10.95-0ubuntu2.10_amd64.deb ...
Unpacking libapparmor1:amd64 (2.10.95-0ubuntu2.10) over (2.10.95-0ubuntu2.9) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Setting up libapparmor1:amd64 (2.10.95-0ubuntu2.10) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
(Reading database ... 32859 files and directories currently installed.)
Preparing to unpack .../libglib2.0-0_2.48.2-0ubuntu4.1_amd64.deb ...
Unpacking libglib2.0-0:amd64 (2.48.2-0ubuntu4.1) over (2.48.2-0ubuntu4) ...
Preparing to unpack .../ntfs-3g_1%3a2015.3.14AR.1-1ubuntu0.3_amd64.deb ...
Unpacking ntfs-3g (1:2015.3.14AR.1-1ubuntu0.3) over (1:2015.3.14AR.1-1ubuntu0.1) ...
Preparing to unpack .../open-iscsi_2.0.873+git0.3b4b4500-14ubuntu3.7_amd64.deb ...
Unpacking open-iscsi (2.0.873+git0.3b4b4500-14ubuntu3.7) over (2.0.873+git0.3b4b4500-14ubuntu3.4) ...
Preparing to unpack .../libapparmor-perl_2.10.95-0ubuntu2.10_amd64.deb ...
Unpacking libapparmor-perl (2.10.95-0ubuntu2.10) over (2.10.95-0ubuntu2.9) ...
Preparing to unpack .../apparmor_2.10.95-0ubuntu2.10_amd64.deb ...
Unpacking apparmor (2.10.95-0ubuntu2.10) over (2.10.95-0ubuntu2.9) ...
Preparing to unpack .../libssl1.0.0_1.0.2g-1ubuntu4.15_amd64.deb ...
Unpacking libssl1.0.0:amd64 (1.0.2g-1ubuntu4.15) over (1.0.2g-1ubuntu4.13) ...
Preparing to unpack .../openssl_1.0.2g-1ubuntu4.15_amd64.deb ...
Unpacking openssl (1.0.2g-1ubuntu4.15) over (1.0.2g-1ubuntu4.13) ...
Preparing to unpack .../ca-certificates_20170717~16.04.2_all.deb ...
Unpacking ca-certificates (20170717~16.04.2) over (20170717~16.04.1) ...
Preparing to unpack .../openssh-sftp-server_1%3a7.2p2-4ubuntu2.8_amd64.deb ...
Unpacking openssh-sftp-server (1:7.2p2-4ubuntu2.8) over (1:7.2p2-4ubuntu2.4) ...
Preparing to unpack .../libgssapi-krb5-2_1.13.2+dfsg-5ubuntu2.1_amd64.deb ...
Unpacking libgssapi-krb5-2:amd64 (1.13.2+dfsg-5ubuntu2.1) over (1.13.2+dfsg-5ubuntu2) ...
Preparing to unpack .../libkrb5-3_1.13.2+dfsg-5ubuntu2.1_amd64.deb ...
Unpacking libkrb5-3:amd64 (1.13.2+dfsg-5ubuntu2.1) over (1.13.2+dfsg-5ubuntu2) ...
Preparing to unpack .../libkrb5support0_1.13.2+dfsg-5ubuntu2.1_amd64.deb ...
Unpacking libkrb5support0:amd64 (1.13.2+dfsg-5ubuntu2.1) over (1.13.2+dfsg-5ubuntu2) ...
Preparing to unpack .../libk5crypto3_1.13.2+dfsg-5ubuntu2.1_amd64.deb ...
Unpacking libk5crypto3:amd64 (1.13.2+dfsg-5ubuntu2.1) over (1.13.2+dfsg-5ubuntu2) ...
Preparing to unpack .../openssh-server_1%3a7.2p2-4ubuntu2.8_amd64.deb ...
Unpacking openssh-server (1:7.2p2-4ubuntu2.8) over (1:7.2p2-4ubuntu2.4) ...
Preparing to unpack .../passwd_1%3a4.2-3.1ubuntu5.4_amd64.deb ...
Unpacking passwd (1:4.2-3.1ubuntu5.4) over (1:4.2-3.1ubuntu5.3) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for systemd (229-4ubuntu21.21) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for ufw (0.35-0ubuntu2) ...
Setting up passwd (1:4.2-3.1ubuntu5.4) ...
(Reading database ... 32859 files and directories currently installed.)
Preparing to unpack .../openssh-client_1%3a7.2p2-4ubuntu2.8_amd64.deb ...
Unpacking openssh-client (1:7.2p2-4ubuntu2.8) over (1:7.2p2-4ubuntu2.4) ...
Preparing to unpack .../squashfs-tools_1%3a4.3-3ubuntu2.16.04.3_amd64.deb ...
Unpacking squashfs-tools (1:4.3-3ubuntu2.16.04.3) over (1:4.3-3ubuntu2.16.04.2) ...
Preparing to unpack .../ubuntu-core-launcher_2.38_amd64.deb ...
Unpacking ubuntu-core-launcher (2.38) over (2.34.2) ...
Preparing to unpack .../archives/snapd_2.38_amd64.deb ...
Unpacking snapd (2.38) over (2.34.2) ...
Preparing to unpack .../python-apt-common_1.1.0~beta1ubuntu0.16.04.4_all.deb ...
Unpacking python-apt-common (1.1.0~beta1ubuntu0.16.04.4) over (1.1.0~beta1ubuntu0.16.04.2) ...
Preparing to unpack .../python3-apt_1.1.0~beta1ubuntu0.16.04.4_amd64.deb ...
Unpacking python3-apt (1.1.0~beta1ubuntu0.16.04.4) over (1.1.0~beta1ubuntu0.16.04.2) ...
Preparing to unpack .../ubuntu-release-upgrader-core_1%3a16.04.26_all.deb ...
Unpacking ubuntu-release-upgrader-core (1:16.04.26) over (1:16.04.25) ...
Preparing to unpack .../python3-distupgrade_1%3a16.04.26_all.deb ...
Unpacking python3-distupgrade (1:16.04.26) over (1:16.04.25) ...
Preparing to unpack .../update-manager-core_1%3a16.04.15_all.deb ...
Unpacking update-manager-core (1:16.04.15) over (1:16.04.13) ...
Preparing to unpack .../python3-update-manager_1%3a16.04.15_all.deb ...
Unpacking python3-update-manager (1:16.04.15) over (1:16.04.13) ...
Preparing to unpack .../update-notifier-common_3.168.10_all.deb ...
Unpacking update-notifier-common (3.168.10) over (3.168.9) ...
Preparing to unpack .../multiarch-support_2.23-0ubuntu11_amd64.deb ...
Unpacking multiarch-support (2.23-0ubuntu11) over (2.23-0ubuntu10) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Setting up multiarch-support (2.23-0ubuntu11) ...
(Reading database ... 32868 files and directories currently installed.)
Preparing to unpack .../tzdata_2019a-0ubuntu0.16.04_all.deb ...
Unpacking tzdata (2019a-0ubuntu0.16.04) over (2017c-0ubuntu0.16.04) ...
Preparing to unpack .../console-setup-linux_1.108ubuntu15.5_all.deb ...
Unpacking console-setup-linux (1.108ubuntu15.5) over (1.108ubuntu15.4) ...
Preparing to unpack .../console-setup_1.108ubuntu15.5_all.deb ...
Obsolete conffile /etc/init.d/keyboard-setup has been modified by you, renaming to .dpkg-bak
Unpacking console-setup (1.108ubuntu15.5) over (1.108ubuntu15.4) ...
Preparing to unpack .../keyboard-configuration_1.108ubuntu15.5_all.deb ...
Unpacking keyboard-configuration (1.108ubuntu15.5) over (1.108ubuntu15.4) ...
Preparing to unpack .../distro-info-data_0.28ubuntu0.12_all.deb ...
Unpacking distro-info-data (0.28ubuntu0.12) over (0.28ubuntu0.8) ...
Preparing to unpack .../file_1%3a5.25-2ubuntu1.2_amd64.deb ...
Unpacking file (1:5.25-2ubuntu1.2) over (1:5.25-2ubuntu1.1) ...
Preparing to unpack .../libmagic1_1%3a5.25-2ubuntu1.2_amd64.deb ...
Unpacking libmagic1:amd64 (1:5.25-2ubuntu1.2) over (1:5.25-2ubuntu1.1) ...
Preparing to unpack .../iproute2_4.3.0-1ubuntu3.16.04.5_amd64.deb ...
Unpacking iproute2 (4.3.0-1ubuntu3.16.04.5) over (4.3.0-1ubuntu3.16.04.3) ...
Preparing to unpack .../libisc-export160_1%3a9.10.3.dfsg.P4-8ubuntu1.14_amd64.deb ...
Unpacking libisc-export160 (1:9.10.3.dfsg.P4-8ubuntu1.14) over (1:9.10.3.dfsg.P4-8ubuntu1.10) ...
Preparing to unpack .../libdns-export162_1%3a9.10.3.dfsg.P4-8ubuntu1.14_amd64.deb ...
Unpacking libdns-export162 (1:9.10.3.dfsg.P4-8ubuntu1.14) over (1:9.10.3.dfsg.P4-8ubuntu1.10) ...
Preparing to unpack .../libsqlite3-0_3.11.0-1ubuntu1.1_amd64.deb ...
Unpacking libsqlite3-0:amd64 (3.11.0-1ubuntu1.1) over (3.11.0-1ubuntu1) ...
Preparing to unpack .../rsyslog_8.16.0-1ubuntu3.1_amd64.deb ...
Unpacking rsyslog (8.16.0-1ubuntu3.1) over (8.16.0-1ubuntu3) ...
Preparing to unpack .../sudo_1.8.16-0ubuntu1.6_amd64.deb ...
Unpacking sudo (1.8.16-0ubuntu1.6) over (1.8.16-0ubuntu1.5) ...
Preparing to unpack .../ureadahead_0.100.0-19.1_amd64.deb ...
Unpacking ureadahead (0.100.0-19.1) over (0.100.0-19) ...
Preparing to unpack .../curl_7.47.0-1ubuntu2.12_amd64.deb ...
Unpacking curl (7.47.0-1ubuntu2.12) over (7.47.0-1ubuntu2.8) ...
Preparing to unpack .../libsasl2-modules-db_2.1.26.dfsg1-14ubuntu0.1_amd64.deb ...
Unpacking libsasl2-modules-db:amd64 (2.1.26.dfsg1-14ubuntu0.1) over (2.1.26.dfsg1-14build1) ...
Preparing to unpack .../libsasl2-2_2.1.26.dfsg1-14ubuntu0.1_amd64.deb ...
Unpacking libsasl2-2:amd64 (2.1.26.dfsg1-14ubuntu0.1) over (2.1.26.dfsg1-14build1) ...
Preparing to unpack .../libldap-2.4-2_2.4.42+dfsg-2ubuntu3.5_amd64.deb ...
Unpacking libldap-2.4-2:amd64 (2.4.42+dfsg-2ubuntu3.5) over (2.4.42+dfsg-2ubuntu3.3) ...
Preparing to unpack .../libcurl3-gnutls_7.47.0-1ubuntu2.12_amd64.deb ...
Unpacking libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.12) over (7.47.0-1ubuntu2.8) ...
Preparing to unpack .../apt-transport-https_1.2.31_amd64.deb ...
Unpacking apt-transport-https (1.2.31) over (1.2.27) ...
Preparing to unpack .../bind9-host_1%3a9.10.3.dfsg.P4-8ubuntu1.14_amd64.deb ...
Unpacking bind9-host (1:9.10.3.dfsg.P4-8ubuntu1.14) over (1:9.10.3.dfsg.P4-8ubuntu1.10) ...
Preparing to unpack .../dnsutils_1%3a9.10.3.dfsg.P4-8ubuntu1.14_amd64.deb ...
Unpacking dnsutils (1:9.10.3.dfsg.P4-8ubuntu1.14) over (1:9.10.3.dfsg.P4-8ubuntu1.10) ...
Preparing to unpack .../libisc160_1%3a9.10.3.dfsg.P4-8ubuntu1.14_amd64.deb ...
Unpacking libisc160:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) over (1:9.10.3.dfsg.P4-8ubuntu1.10) ...
Preparing to unpack .../libdns162_1%3a9.10.3.dfsg.P4-8ubuntu1.14_amd64.deb ...
Unpacking libdns162:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) over (1:9.10.3.dfsg.P4-8ubuntu1.10) ...
Preparing to unpack .../libisccc140_1%3a9.10.3.dfsg.P4-8ubuntu1.14_amd64.deb ...
Unpacking libisccc140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) over (1:9.10.3.dfsg.P4-8ubuntu1.10) ...
Preparing to unpack .../libisccfg140_1%3a9.10.3.dfsg.P4-8ubuntu1.14_amd64.deb ...
Unpacking libisccfg140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) over (1:9.10.3.dfsg.P4-8ubuntu1.10) ...
Preparing to unpack .../liblwres141_1%3a9.10.3.dfsg.P4-8ubuntu1.14_amd64.deb ...
Unpacking liblwres141:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) over (1:9.10.3.dfsg.P4-8ubuntu1.10) ...
Preparing to unpack .../libbind9-140_1%3a9.10.3.dfsg.P4-8ubuntu1.14_amd64.deb ...
Unpacking libbind9-140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) over (1:9.10.3.dfsg.P4-8ubuntu1.10) ...
Preparing to unpack .../busybox-static_1%3a1.22.0-15ubuntu1.4_amd64.deb ...
Unpacking busybox-static (1:1.22.0-15ubuntu1.4) over (1:1.22.0-15ubuntu1) ...
Preparing to unpack .../libasprintf0v5_0.19.7-2ubuntu3.1_amd64.deb ...
Unpacking libasprintf0v5:amd64 (0.19.7-2ubuntu3.1) over (0.19.7-2ubuntu3) ...
Preparing to unpack .../gettext-base_0.19.7-2ubuntu3.1_amd64.deb ...
Unpacking gettext-base (0.19.7-2ubuntu3.1) over (0.19.7-2ubuntu3) ...
Preparing to unpack .../krb5-locales_1.13.2+dfsg-5ubuntu2.1_all.deb ...
Unpacking krb5-locales (1.13.2+dfsg-5ubuntu2.1) over (1.13.2+dfsg-5ubuntu2) ...
Preparing to unpack .../libglib2.0-data_2.48.2-0ubuntu4.1_all.deb ...
Unpacking libglib2.0-data (2.48.2-0ubuntu4.1) over (2.48.2-0ubuntu4) ...
Preparing to unpack .../pciutils_1%3a3.3.1-1.1ubuntu1.3_amd64.deb ...
Unpacking pciutils (1:3.3.1-1.1ubuntu1.3) over (1:3.3.1-1.1ubuntu1.2) ...
Preparing to unpack .../libpci3_1%3a3.3.1-1.1ubuntu1.3_amd64.deb ...
Unpacking libpci3:amd64 (1:3.3.1-1.1ubuntu1.3) over (1:3.3.1-1.1ubuntu1.2) ...
Preparing to unpack .../libpolkit-gobject-1-0_0.105-14.1ubuntu0.5_amd64.deb ...
Unpacking libpolkit-gobject-1-0:amd64 (0.105-14.1ubuntu0.5) over (0.105-14.1ubuntu0.1) ...
Preparing to unpack .../libsasl2-modules_2.1.26.dfsg1-14ubuntu0.1_amd64.deb ...
Unpacking libsasl2-modules:amd64 (2.1.26.dfsg1-14ubuntu0.1) over (2.1.26.dfsg1-14build1) ...
Preparing to unpack .../libx11-data_2%3a1.6.3-1ubuntu2.1_all.deb ...
Unpacking libx11-data (2:1.6.3-1ubuntu2.1) over (2:1.6.3-1ubuntu2) ...
Preparing to unpack .../libx11-6_2%3a1.6.3-1ubuntu2.1_amd64.deb ...
Unpacking libx11-6:amd64 (2:1.6.3-1ubuntu2.1) over (2:1.6.3-1ubuntu2) ...
Preparing to unpack .../lshw_02.17-1.1ubuntu3.6_amd64.deb ...
Unpacking lshw (02.17-1.1ubuntu3.6) over (02.17-1.1ubuntu3.5) ...
Preparing to unpack .../wget_1.17.1-1ubuntu1.5_amd64.deb ...
Unpacking wget (1.17.1-1ubuntu1.5) over (1.17.1-1ubuntu1.4) ...
Preparing to unpack .../ubuntu-standard_1.361.3_amd64.deb ...
Unpacking ubuntu-standard (1.361.3) over (1.361.1) ...
Preparing to unpack .../git-man_1%3a2.7.4-0ubuntu1.6_all.deb ...
Unpacking git-man (1:2.7.4-0ubuntu1.6) over (1:2.7.4-0ubuntu1.4) ...
Preparing to unpack .../git_1%3a2.7.4-0ubuntu1.6_amd64.deb ...
Unpacking git (1:2.7.4-0ubuntu1.6) over (1:2.7.4-0ubuntu1.4) ...
Preparing to unpack .../liblxc1_2.0.11-0ubuntu1~16.04.3_amd64.deb ...
Unpacking liblxc1 (2.0.11-0ubuntu1~16.04.3) over (2.0.8-0ubuntu1~16.04.2) ...
Preparing to unpack .../lxc-common_2.0.11-0ubuntu1~16.04.3_amd64.deb ...
Unpacking lxc-common (2.0.11-0ubuntu1~16.04.3) over (2.0.8-0ubuntu1~16.04.2) ...
Preparing to unpack .../libmspack0_0.5-1ubuntu0.16.04.3_amd64.deb ...
Unpacking libmspack0:amd64 (0.5-1ubuntu0.16.04.3) over (0.5-1ubuntu0.16.04.2) ...
Preparing to unpack .../libpolkit-agent-1-0_0.105-14.1ubuntu0.5_amd64.deb ...
Unpacking libpolkit-agent-1-0:amd64 (0.105-14.1ubuntu0.5) over (0.105-14.1ubuntu0.1) ...
Preparing to unpack .../libpolkit-backend-1-0_0.105-14.1ubuntu0.5_amd64.deb ...
Unpacking libpolkit-backend-1-0:amd64 (0.105-14.1ubuntu0.5) over (0.105-14.1ubuntu0.1) ...
Preparing to unpack .../libxslt1.1_1.1.28-2.1ubuntu0.2_amd64.deb ...
Unpacking libxslt1.1:amd64 (1.1.28-2.1ubuntu0.2) over (1.1.28-2.1ubuntu0.1) ...
Preparing to unpack .../policykit-1_0.105-14.1ubuntu0.5_amd64.deb ...
Unpacking policykit-1 (0.105-14.1ubuntu0.5) over (0.105-14.1ubuntu0.1) ...
Preparing to unpack .../python3-cryptography_1.2.3-1ubuntu0.2_amd64.deb ...
Unpacking python3-cryptography (1.2.3-1ubuntu0.2) over (1.2.3-1ubuntu0.1) ...
Preparing to unpack .../python3-urllib3_1.13.1-2ubuntu0.16.04.2_all.deb ...
Unpacking python3-urllib3 (1.13.1-2ubuntu0.16.04.2) over (1.13.1-2ubuntu0.16.04.1) ...
Preparing to unpack .../python3-requests_2.9.1-3ubuntu0.1_all.deb ...
Unpacking python3-requests (2.9.1-3ubuntu0.1) over (2.9.1-3) ...
Preparing to unpack .../software-properties-common_0.96.20.8_all.deb ...
Unpacking software-properties-common (0.96.20.8) over (0.96.20.7) ...
Preparing to unpack .../python3-software-properties_0.96.20.8_all.deb ...
Unpacking python3-software-properties (0.96.20.8) over (0.96.20.7) ...
Preparing to unpack .../sosreport_3.6-1ubuntu0.16.04.2_amd64.deb ...
Unpacking sosreport (3.6-1ubuntu0.16.04.2) over (3.5-1~ubuntu16.04.3) ...
Preparing to unpack .../uidmap_1%3a4.2-3.1ubuntu5.4_amd64.deb ...
Unpacking uidmap (1:4.2-3.1ubuntu5.4) over (1:4.2-3.1ubuntu5.3) ...
Preparing to unpack .../unattended-upgrades_0.90ubuntu0.10_all.deb ...
invoke-rc.d: could not determine current runlevel
Unpacking unattended-upgrades (0.90ubuntu0.10) over (0.90ubuntu0.9) ...
Preparing to unpack .../cloud-init_18.5-45-g3554ffe8-0ubuntu1~16.04.1_all.deb ...
Unpacking cloud-init (18.5-45-g3554ffe8-0ubuntu1~16.04.1) over (18.3-9-g2e62cb8a-0ubuntu1~16.04.2) ...
Preparing to unpack .../cloud-initramfs-copymods_0.27ubuntu1.6_all.deb ...
Unpacking cloud-initramfs-copymods (0.27ubuntu1.6) over (0.27ubuntu1.5) ...
Preparing to unpack .../cloud-initramfs-dyn-netconf_0.27ubuntu1.6_all.deb ...
Unpacking cloud-initramfs-dyn-netconf (0.27ubuntu1.6) over (0.27ubuntu1.5) ...
Preparing to unpack .../overlayroot_0.27ubuntu1.6_all.deb ...
Unpacking overlayroot (0.27ubuntu1.6) over (0.27ubuntu1.5) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for systemd (229-4ubuntu21.21) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Processing triggers for install-info (6.1.0.dfsg.1-5) ...
Processing triggers for dbus (1.10.6-1ubuntu3.3) ...
Setting up perl-modules-5.22 (5.22.1-9ubuntu0.6) ...
Setting up libperl5.22:amd64 (5.22.1-9ubuntu0.6) ...
Setting up perl (5.22.1-9ubuntu0.6) ...
Setting up debconf-i18n (1.5.58ubuntu2) ...
Setting up locales (2.23-0ubuntu11) ...
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
Setting up libapt-inst2.0:amd64 (1.2.31) ...
Setting up apt-utils (1.2.31) ...
Setting up libpam-systemd:amd64 (229-4ubuntu21.21) ...
Setting up udev (229-4ubuntu21.21) ...
addgroup: The group `input' already exists as a system group. Exiting.
invoke-rc.d: could not determine current runlevel
update-initramfs: deferring update (trigger activated)
Setting up kmod (22-1ubuntu5.2) ...
Installing new version of config file /etc/modprobe.d/blacklist.conf ...
Setting up friendly-recovery (0.2.31ubuntu2) ...
Setting up initramfs-tools-bin (0.122ubuntu8.14) ...
Setting up busybox-initramfs (1:1.22.0-15ubuntu1.4) ...
Setting up initramfs-tools-core (0.122ubuntu8.14) ...
Setting up initramfs-tools (0.122ubuntu8.14) ...
update-initramfs: deferring update (trigger activated)
Setting up libglib2.0-0:amd64 (2.48.2-0ubuntu4.1) ...
No schema files found: doing nothing.
Setting up ntfs-3g (1:2015.3.14AR.1-1ubuntu0.3) ...
Setting up open-iscsi (2.0.873+git0.3b4b4500-14ubuntu3.7) ...
invoke-rc.d: could not determine current runlevel
invoke-rc.d: could not determine current runlevel
Setting up libapparmor-perl (2.10.95-0ubuntu2.10) ...
Setting up apparmor (2.10.95-0ubuntu2.10) ...
Installing new version of config file /etc/apparmor.d/abstractions/private-files ...
Installing new version of config file /etc/apparmor.d/abstractions/private-files-strict ...
Installing new version of config file /etc/apparmor.d/abstractions/ubuntu-browsers.d/user-files ...
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Setting up libssl1.0.0:amd64 (1.0.2g-1ubuntu4.15) ...
Setting up openssl (1.0.2g-1ubuntu4.15) ...
Setting up ca-certificates (20170717~16.04.2) ...
Setting up libkrb5support0:amd64 (1.13.2+dfsg-5ubuntu2.1) ...
Setting up libk5crypto3:amd64 (1.13.2+dfsg-5ubuntu2.1) ...
Setting up libkrb5-3:amd64 (1.13.2+dfsg-5ubuntu2.1) ...
Setting up libgssapi-krb5-2:amd64 (1.13.2+dfsg-5ubuntu2.1) ...
Setting up openssh-client (1:7.2p2-4ubuntu2.8) ...
Setting up openssh-sftp-server (1:7.2p2-4ubuntu2.8) ...
Setting up openssh-server (1:7.2p2-4ubuntu2.8) ...
Creating SSH2 RSA key; this may take some time ...
2048 SHA256:riq/UI3fC1vY7ahr28KZ/L3/NFEPqGYKFkB95nKSaV8 root@DESKTOP-some_desktop (RSA)
Creating SSH2 DSA key; this may take some time ...
1024 SHA256:irC1HMqGuhTVta0VLBYGQ7Nxol7qp0kBbWuWqUndpQo root@DESKTOP-some_desktop (DSA)
Creating SSH2 ECDSA key; this may take some time ...
256 SHA256:pIqjkAY+dnQAjzXRvJDKj+B6oD7HCRq0TYxX1snJfos root@DESKTOP-some_desktop (ECDSA)
Creating SSH2 ED25519 key; this may take some time ...
256 SHA256:Kwra+jbtdKKRN50YYfC+jBjNATuG2DPraE62B+2EZrQ root@DESKTOP-some_desktop (ED25519)
invoke-rc.d: could not determine current runlevel
Setting up squashfs-tools (1:4.3-3ubuntu2.16.04.3) ...
Setting up snapd (2.38) ...
Installing new version of config file /etc/apparmor.d/usr.lib.snapd.snap-confine.real ...
md5sum: /etc/apparmor.d/usr.lib.snapd.snap-confine: No such file or directory
Setting up ubuntu-core-launcher (2.38) ...
Setting up python-apt-common (1.1.0~beta1ubuntu0.16.04.4) ...
Setting up python3-apt (1.1.0~beta1ubuntu0.16.04.4) ...
Setting up tzdata (2019a-0ubuntu0.16.04) ...

User defined time zone, leaving /etc/localtime unchanged.
Local time is now:      Thu May 16 16:01:22 DST 2019.
Universal Time is now:  Thu May 16 14:01:22 UTC 2019.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

Setting up keyboard-configuration (1.108ubuntu15.5) ...
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
update-initramfs: deferring update (trigger activated)
Setting up console-setup-linux (1.108ubuntu15.5) ...
Installing new version of config file /etc/console-setup/compose.ISO-8859-1.inc ...
Installing new version of config file /etc/console-setup/compose.ISO-8859-13.inc ...
Installing new version of config file /etc/console-setup/compose.ISO-8859-14.inc ...
Installing new version of config file /etc/console-setup/compose.ISO-8859-15.inc ...
Installing new version of config file /etc/console-setup/compose.ISO-8859-2.inc ...
Installing new version of config file /etc/console-setup/compose.ISO-8859-3.inc ...
Installing new version of config file /etc/console-setup/compose.ISO-8859-4.inc ...
Installing new version of config file /etc/console-setup/compose.ISO-8859-7.inc ...
Installing new version of config file /etc/console-setup/compose.ISO-8859-9.inc ...
Setting up console-setup (1.108ubuntu15.5) ...
Your console font configuration will be updated the next time your system
boots. If you want to update it now, run 'setupcon' from a virtual console.
update-initramfs: deferring update (trigger activated)
Setting up distro-info-data (0.28ubuntu0.12) ...
Setting up libmagic1:amd64 (1:5.25-2ubuntu1.2) ...
Setting up file (1:5.25-2ubuntu1.2) ...
Setting up iproute2 (4.3.0-1ubuntu3.16.04.5) ...
Setting up libisc-export160 (1:9.10.3.dfsg.P4-8ubuntu1.14) ...
Setting up libdns-export162 (1:9.10.3.dfsg.P4-8ubuntu1.14) ...
Setting up libsqlite3-0:amd64 (3.11.0-1ubuntu1.1) ...
Setting up rsyslog (8.16.0-1ubuntu3.1) ...
Installing new version of config file /etc/logrotate.d/rsyslog ...
The user `syslog' is already a member of `adm'.
invoke-rc.d: could not determine current runlevel
Setting up sudo (1.8.16-0ubuntu1.6) ...
Setting up ureadahead (0.100.0-19.1) ...
Setting up libsasl2-modules-db:amd64 (2.1.26.dfsg1-14ubuntu0.1) ...
Setting up libsasl2-2:amd64 (2.1.26.dfsg1-14ubuntu0.1) ...
Setting up libldap-2.4-2:amd64 (2.4.42+dfsg-2ubuntu3.5) ...
Setting up libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.12) ...
Setting up curl (7.47.0-1ubuntu2.12) ...
Setting up apt-transport-https (1.2.31) ...
Setting up libisc160:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) ...
Setting up libdns162:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) ...
Setting up libisccc140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) ...
Setting up libisccfg140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) ...
Setting up libbind9-140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) ...
Setting up liblwres141:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.14) ...
Setting up bind9-host (1:9.10.3.dfsg.P4-8ubuntu1.14) ...
Setting up dnsutils (1:9.10.3.dfsg.P4-8ubuntu1.14) ...
Setting up busybox-static (1:1.22.0-15ubuntu1.4) ...
Setting up libasprintf0v5:amd64 (0.19.7-2ubuntu3.1) ...
Setting up gettext-base (0.19.7-2ubuntu3.1) ...
Setting up krb5-locales (1.13.2+dfsg-5ubuntu2.1) ...
Setting up libglib2.0-data (2.48.2-0ubuntu4.1) ...
Setting up libpci3:amd64 (1:3.3.1-1.1ubuntu1.3) ...
Setting up pciutils (1:3.3.1-1.1ubuntu1.3) ...
Setting up libpolkit-gobject-1-0:amd64 (0.105-14.1ubuntu0.5) ...
Setting up libsasl2-modules:amd64 (2.1.26.dfsg1-14ubuntu0.1) ...
Setting up libx11-data (2:1.6.3-1ubuntu2.1) ...
Setting up libx11-6:amd64 (2:1.6.3-1ubuntu2.1) ...
Setting up lshw (02.17-1.1ubuntu3.6) ...
Setting up wget (1.17.1-1ubuntu1.5) ...
Setting up ubuntu-standard (1.361.3) ...
Setting up git-man (1:2.7.4-0ubuntu1.6) ...
Setting up git (1:2.7.4-0ubuntu1.6) ...
Setting up libmspack0:amd64 (0.5-1ubuntu0.16.04.3) ...
Setting up libpolkit-agent-1-0:amd64 (0.105-14.1ubuntu0.5) ...
Setting up libpolkit-backend-1-0:amd64 (0.105-14.1ubuntu0.5) ...
Setting up libxslt1.1:amd64 (1.1.28-2.1ubuntu0.2) ...
Setting up policykit-1 (0.105-14.1ubuntu0.5) ...
Setting up python3-cryptography (1.2.3-1ubuntu0.2) ...
Setting up python3-urllib3 (1.13.1-2ubuntu0.16.04.2) ...
Setting up python3-requests (2.9.1-3ubuntu0.1) ...
Setting up python3-software-properties (0.96.20.8) ...
Setting up software-properties-common (0.96.20.8) ...
Setting up sosreport (3.6-1ubuntu0.16.04.2) ...
Setting up uidmap (1:4.2-3.1ubuntu5.4) ...
Setting up unattended-upgrades (0.90ubuntu0.10) ...
invoke-rc.d: could not determine current runlevel
Setting up cloud-init (18.5-45-g3554ffe8-0ubuntu1~16.04.1) ...
Installing new version of config file /etc/bash_completion.d/cloud-init ...
Installing new version of config file /etc/cloud/cloud.cfg ...
Installing new version of config file /etc/cloud/templates/chef_client.rb.tmpl ...
Installing new version of config file /etc/cloud/templates/sources.list.ubuntu.tmpl ...
Installing new version of config file /etc/profile.d/Z99-cloud-locale-test.sh ...
Installing new version of config file /etc/profile.d/Z99-cloudinit-warnings.sh ...
Leaving 'diversion of /etc/init/ureadahead.conf to /etc/init/ureadahead.conf.disabled by cloud-init'
Setting up cloud-initramfs-copymods (0.27ubuntu1.6) ...
Setting up cloud-initramfs-dyn-netconf (0.27ubuntu1.6) ...
Setting up overlayroot (0.27ubuntu1.6) ...
Setting up liblxc1 (2.0.11-0ubuntu1~16.04.3) ...
Setting up lxc-common (2.0.11-0ubuntu1~16.04.3) ...
Installing new version of config file /etc/apparmor.d/abstractions/lxc/container-base ...
Installing new version of config file /etc/apparmor.d/abstractions/lxc/start-container ...
invoke-rc.d: could not determine current runlevel
Setting up python3-distupgrade (1:16.04.26) ...
Setting up python3-update-manager (1:16.04.15) ...
Setting up ubuntu-release-upgrader-core (1:16.04.26) ...
Setting up update-manager-core (1:16.04.15) ...
Setting up update-notifier-common (3.168.10) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Processing triggers for initramfs-tools (0.122ubuntu8.14) ...
Processing triggers for ca-certificates (20170717~16.04.2) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

done.
done.
a@DESKTOP-some_desktop:~/gCalSync$ git clone https://github.com/bergercookie/taskw_gcal_sync.git
Cloning into 'taskw_gcal_sync'...
remote: Enumerating objects: 76, done.
remote: Counting objects: 100% (76/76), done.
remote: Compressing objects: 100% (55/55), done.
remote: Total 222 (delta 46), reused 50 (delta 21), pack-reused 146
Receiving objects: 100% (222/222), 68.55 KiB | 0 bytes/s, done.
Resolving deltas: 100% (128/128), done.
Checking connectivity... done.
a@DESKTOP-some_desktop:~/gCalSync$ pip3 install --user --upgrade requirements.txt # from the repo root dir
Collecting requirements.txt
  Could not find a version that satisfies the requirement requirements.txt (from versions: )
No matching distribution found for requirements.txt
You are using pip version 8.1.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
a@DESKTOP-some_desktop:~/gCalSync$ dir
taskw_gcal_sync
a@DESKTOP-some_desktop:~/gCalSync$ cd taskw_gcal_sync
a@DESKTOP-some_desktop:~/gCalSync/taskw_gcal_sync$ pip3 install --user --upgrade requirements.txt # from the repo root dir
Collecting requirements.txt
  Could not find a version that satisfies the requirement requirements.txt (from versions: )
No matching distribution found for requirements.txt
You are using pip version 8.1.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
a@DESKTOP-some_desktop:~/gCalSync/taskw_gcal_sync$ dir
LICENSE  README.md  requirements.txt  scripts  setup.py  taskw_gcal_sync  test  tw_gcal_sync
a@DESKTOP-some_desktop:~/gCalSync/taskw_gcal_sync$ pip3 install --user --upgrade requirements.txt
Collecting requirements.txt
  Could not find a version that satisfies the requirement requirements.txt (from versions: )
No matching distribution found for requirements.txt
You are using pip version 8.1.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
a@DESKTOP-some_desktop:~/gCalSync/taskw_gcal_sync$ cd ..
a@DESKTOP-some_desktop:~/gCalSync$ pip3 install --user --upgrade requirements.txt
Collecting requirements.txt
  Could not find a version that satisfies the requirement requirements.txt (from versions: )
No matching distribution found for requirements.txt
You are using pip version 8.1.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
a@DESKTOP-some_desktop:~/gCalSync$ pip3 install --user --upgrade taskw_gcal_sync
Collecting taskw_gcal_sync
  Downloading https://files.pythonhosted.org/packages/50/79/7bff29e5541edcd973d6143bb1b94a32ff5cef0b13a5e1582f107dc8ff6e/taskw_gcal_sync-0.0.2-py3-none-any.whl
Collecting bidict (from taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/10/db/0f688f4ed1ff18a7bdfc868dd879e71fcd3cb3b01ca22af5f49968102258/bidict-0.18.0-py2.py3-none-any.whl (40kB)
    100% |████████████████████████████████| 40kB 1.2MB/s
Collecting taskw (from taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/30/1f/610321b369698278f7586e557387c8f27515097fb5511b30294eb6463e98/taskw-1.2.0.tar.gz (41kB)
    100% |████████████████████████████████| 51kB 1.9MB/s
Collecting typing (from taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/4a/bd/eee1157fc2d8514970b345d69cb9975dcd1e42cd7e61146ed841f6e68309/typing-3.6.6-py3-none-any.whl
Collecting click (from taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl (81kB)
    100% |████████████████████████████████| 81kB 739kB/s
Collecting google-api-python-client (from taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/55/e9/e8fb2e3a031cb69b9524b80a92b126665d9a17421700a219555e3233ab6a/google_api_python_client-1.7.8-py3-none-any.whl (56kB)
    100% |████████████████████████████████| 61kB 767kB/s
Collecting sh (from taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/4a/22/17b22ef5b049f12080f5815c41bf94de3c229217609e469001a8f80c1b3d/sh-1.12.14-py2.py3-none-any.whl
Collecting pyyaml (from taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/9f/2c/9417b5c774792634834e730932745bc09a7d36754ca00acf1ccd1ac2594d/PyYAML-5.1.tar.gz (274kB)
    100% |████████████████████████████████| 276kB 1.2MB/s
Collecting rfc3339 (from taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/04/0b/8727b5496abde4622dc0e2ec2ea082e11d14ef70cfc73118b480447456ca/rfc3339-6.0.tar.gz
Collecting oauth2client (from taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/95/a9/4f25a14d23f0786b64875b91784607c2277eff25d48f915e39ff0cff505a/oauth2client-4.1.3-py2.py3-none-any.whl (98kB)
    100% |████████████████████████████████| 102kB 1.5MB/s
Collecting mypy (from taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/c2/e1/90be938b9710ea5e8ef0d00e06eeb9302414cd5a595a79724c136ccc6af2/mypy-0.701-cp35-cp35m-manylinux1_x86_64.whl (19.8MB)
    100% |████████████████████████████████| 19.8MB 62kB/s
Collecting colorlog (from taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/68/4d/892728b0c14547224f0ac40884e722a3d00cb54e7a146aea0b3186806c9e/colorlog-4.0.2-py2.py3-none-any.whl
Collecting six (from taskw->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Collecting python-dateutil (from taskw->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/41/17/c62faccbfbd163c7f57f3844689e3a78bae1f403648a6afb1d0866d87fbb/python_dateutil-2.8.0-py2.py3-none-any.whl (226kB)
    100% |████████████████████████████████| 235kB 647kB/s
Collecting pytz (from taskw->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/3d/73/fe30c2daaaa0713420d0382b16fbb761409f532c56bdcc514bf7b6262bb6/pytz-2019.1-py2.py3-none-any.whl (510kB)
    100% |████████████████████████████████| 512kB 1.5MB/s
Collecting kitchen (from taskw->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/d9/ca/3365cb1160533be8c8b57dbfd6502f367d35e30935ee89a003c664740714/kitchen-1.2.6.tar.gz (255kB)
    100% |████████████████████████████████| 256kB 927kB/s
Collecting google-auth>=1.4.1 (from google-api-python-client->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/c5/9b/ed0516cc1f7609fb0217e3057ff4f0f9f3e3ce79a369c6af4a6c5ca25664/google_auth-1.6.3-py2.py3-none-any.whl (73kB)
    100% |████████████████████████████████| 81kB 2.1MB/s
Collecting uritemplate<4dev,>=3.0.0 (from google-api-python-client->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/e5/7d/9d5a640c4f8bf2c8b1afc015e9a9d8de32e13c9016dcc4b0ec03481fb396/uritemplate-3.0.0-py2.py3-none-any.whl
Collecting httplib2<1dev,>=0.9.2 (from google-api-python-client->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/e8/b3/b34037575d6d75ff8dcfcf75315f56befbe409952be9f95c9b8cc9ee0499/httplib2-0.12.3-py3-none-any.whl (94kB)
    100% |████████████████████████████████| 102kB 1.0MB/s
Collecting google-auth-httplib2>=0.0.3 (from google-api-python-client->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/33/49/c814d6d438b823441552198f096fcd0377fd6c88714dbed34f1d3c8c4389/google_auth_httplib2-0.0.3-py2.py3-none-any.whl
Collecting rsa>=3.1.4 (from oauth2client->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/02/e5/38518af393f7c214357079ce67a317307936896e961e35450b70fad2a9cf/rsa-4.0-py2.py3-none-any.whl
Collecting pyasn1>=0.1.7 (from oauth2client->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/7b/7c/c9386b82a25115cccf1903441bba3cbadcfae7b678a20167347fa8ded34c/pyasn1-0.4.5-py2.py3-none-any.whl (73kB)
    100% |████████████████████████████████| 81kB 2.4MB/s
Collecting pyasn1-modules>=0.0.5 (from oauth2client->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/91/f0/b03e00ce9fddf4827c42df1c3ce10c74eadebfb706231e8d6d1c356a4062/pyasn1_modules-0.2.5-py2.py3-none-any.whl (74kB)
    100% |████████████████████████████████| 81kB 599kB/s
Collecting mypy-extensions<0.5.0,>=0.4.0 (from mypy->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/4d/72/8d54e2b296631b9b14961d583e56e90d9d7fba8a240d5ce7f1113cc5e887/mypy_extensions-0.4.1-py2.py3-none-any.whl
Collecting typed-ast<1.4.0,>=1.3.1 (from mypy->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/b0/9a/7f6c8c690bf4bea7b2d4fe3cb278be20902a2d363fc95d81a1ac6b8a4e98/typed_ast-1.3.5-cp35-cp35m-manylinux1_x86_64.whl (735kB)
    100% |████████████████████████████████| 737kB 907kB/s
Collecting cachetools>=2.0.0 (from google-auth>=1.4.1->google-api-python-client->taskw_gcal_sync)
  Downloading https://files.pythonhosted.org/packages/39/2b/d87fc2369242bd743883232c463f28205902b8579cb68dcf5b11eee1652f/cachetools-3.1.0-py2.py3-none-any.whl
Building wheels for collected packages: taskw, pyyaml, rfc3339, kitchen
  Running setup.py bdist_wheel for taskw ... done
  Stored in directory: /home/a/.cache/pip/wheels/0b/e2/86/11a2140307a3be9195b5d4dfb83b9d69f8d070a65713eef7b6
  Running setup.py bdist_wheel for pyyaml ... done
  Stored in directory: /home/a/.cache/pip/wheels/ad/56/bc/1522f864feb2a358ea6f1a92b4798d69ac783a28e80567a18b
  Running setup.py bdist_wheel for rfc3339 ... done
  Stored in directory: /home/a/.cache/pip/wheels/40/70/ac/f506969ec90fcf86c2065f6363bc9a1cdcc7d10190b421a9d5
  Running setup.py bdist_wheel for kitchen ... done
  Stored in directory: /home/a/.cache/pip/wheels/48/7b/d2/2153bf8d0fe8d61c2ef135e47243135ff37d0851f9155f7f6e
Successfully built taskw pyyaml rfc3339 kitchen
Installing collected packages: bidict, six, python-dateutil, pytz, kitchen, taskw, typing, click, pyasn1, pyasn1-modules, cachetools, rsa, google-auth, uritemplate, httplib2, google-auth-httplib2, google-api-python-client, sh, pyyaml, rfc3339, oauth2client, mypy-extensions, typed-ast, mypy, colorlog, taskw-gcal-sync
Successfully installed bidict cachetools click colorlog google-api-python-client google-auth google-auth-httplib2 httplib2 kitchen mypy mypy-extensions oauth2client pyasn1-0.1.9 pyasn1-modules python-dateutil pytz pyyaml-3.11 rfc3339 rsa sh six-1.10.0 taskw taskw-gcal-sync typed-ast typing uritemplate
You are using pip version 8.1.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
a@DESKTOP-some_desktop:~/gCalSync$ tw_gcal_sync --help
tw_gcal_sync: command not found
a@DESKTOP-some_desktop:~/gCalSync$ tw_gcal_sync
tw_gcal_sync: command not found
a@DESKTOP-some_desktop:~/gCalSync$ pip3 rm taskw_gcal_sync
ERROR: unknown command "rm"
a@DESKTOP-some_desktop:~/gCalSync$ pip3 rm -r taskw_gcal_sync
ERROR: unknown command "rm"
a@DESKTOP-some_desktop:~/gCalSync$ rm -r taskw_gcal_sync
rm: remove write-protected regular file 'taskw_gcal_sync/.git/objects/pack/pack-7b458dd6a47170a64e1c19a3a1b8776a8e1a91d1.idx'? y
rm: remove write-protected regular file 'taskw_gcal_sync/.git/objects/pack/pack-7b458dd6a47170a64e1c19a3a1b8776a8e1a91d1.pack'? y
a@DESKTOP-some_desktop:~/gCalSync$ sudo rm -r taskw_gcal_sync
rm: cannot remove 'taskw_gcal_sync': No such file or directory
a@DESKTOP-some_desktop:~/gCalSync$ pip3 install --user git+https://github.com/bergercookie/taskw_gcal_sync
Collecting git+https://github.com/bergercookie/taskw_gcal_sync
  Cloning https://github.com/bergercookie/taskw_gcal_sync to /tmp/pip-1ywyej2_-build
Collecting bidict (from taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/10/db/0f688f4ed1ff18a7bdfc868dd879e71fcd3cb3b01ca22af5f49968102258/bidict-0.18.0-py2.py3-none-any.whl
Collecting click (from taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl
Collecting colorlog (from taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/68/4d/892728b0c14547224f0ac40884e722a3d00cb54e7a146aea0b3186806c9e/colorlog-4.0.2-py2.py3-none-any.whl
Collecting google-api-python-client (from taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/55/e9/e8fb2e3a031cb69b9524b80a92b126665d9a17421700a219555e3233ab6a/google_api_python_client-1.7.8-py3-none-any.whl
Collecting google-auth-oauthlib (from taskw-gcal-sync===0.0.2)
  Downloading https://files.pythonhosted.org/packages/47/02/95e7c5b0965cf5b6b182b5ab81bdecb2157ce2f34a507a3de07b5244decd/google_auth_oauthlib-0.3.0-py2.py3-none-any.whl
Collecting mypy (from taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/c2/e1/90be938b9710ea5e8ef0d00e06eeb9302414cd5a595a79724c136ccc6af2/mypy-0.701-cp35-cp35m-manylinux1_x86_64.whl
Collecting overrides (from taskw-gcal-sync===0.0.2)
  Downloading https://files.pythonhosted.org/packages/de/55/3100c6d14c1ed177492fcf8f07c4a7d2d6c996c0a7fc6a9a0a41308e7eec/overrides-1.9.tar.gz
Collecting pyyaml (from taskw-gcal-sync===0.0.2)
Collecting rfc3339 (from taskw-gcal-sync===0.0.2)
Collecting sh (from taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/4a/22/17b22ef5b049f12080f5815c41bf94de3c229217609e469001a8f80c1b3d/sh-1.12.14-py2.py3-none-any.whl
Collecting taskw (from taskw-gcal-sync===0.0.2)
Collecting typing (from taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/4a/bd/eee1157fc2d8514970b345d69cb9975dcd1e42cd7e61146ed841f6e68309/typing-3.6.6-py3-none-any.whl
Collecting google-auth>=1.4.1 (from google-api-python-client->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/c5/9b/ed0516cc1f7609fb0217e3057ff4f0f9f3e3ce79a369c6af4a6c5ca25664/google_auth-1.6.3-py2.py3-none-any.whl
Collecting google-auth-httplib2>=0.0.3 (from google-api-python-client->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/33/49/c814d6d438b823441552198f096fcd0377fd6c88714dbed34f1d3c8c4389/google_auth_httplib2-0.0.3-py2.py3-none-any.whl
Collecting six<2dev,>=1.6.1 (from google-api-python-client->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Collecting httplib2<1dev,>=0.9.2 (from google-api-python-client->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/e8/b3/b34037575d6d75ff8dcfcf75315f56befbe409952be9f95c9b8cc9ee0499/httplib2-0.12.3-py3-none-any.whl
Collecting uritemplate<4dev,>=3.0.0 (from google-api-python-client->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/e5/7d/9d5a640c4f8bf2c8b1afc015e9a9d8de32e13c9016dcc4b0ec03481fb396/uritemplate-3.0.0-py2.py3-none-any.whl
Collecting requests-oauthlib>=0.7.0 (from google-auth-oauthlib->taskw-gcal-sync===0.0.2)
  Downloading https://files.pythonhosted.org/packages/c2/e2/9fd03d55ffb70fe51f587f20bcf407a6927eb121de86928b34d162f0b1ac/requests_oauthlib-1.2.0-py2.py3-none-any.whl
Collecting typed-ast<1.4.0,>=1.3.1 (from mypy->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/b0/9a/7f6c8c690bf4bea7b2d4fe3cb278be20902a2d363fc95d81a1ac6b8a4e98/typed_ast-1.3.5-cp35-cp35m-manylinux1_x86_64.whl
Collecting mypy-extensions<0.5.0,>=0.4.0 (from mypy->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/4d/72/8d54e2b296631b9b14961d583e56e90d9d7fba8a240d5ce7f1113cc5e887/mypy_extensions-0.4.1-py2.py3-none-any.whl
Collecting pytz (from taskw->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/3d/73/fe30c2daaaa0713420d0382b16fbb761409f532c56bdcc514bf7b6262bb6/pytz-2019.1-py2.py3-none-any.whl
Collecting python-dateutil (from taskw->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/41/17/c62faccbfbd163c7f57f3844689e3a78bae1f403648a6afb1d0866d87fbb/python_dateutil-2.8.0-py2.py3-none-any.whl
Collecting kitchen (from taskw->taskw-gcal-sync===0.0.2)
Collecting rsa>=3.1.4 (from google-auth>=1.4.1->google-api-python-client->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/02/e5/38518af393f7c214357079ce67a317307936896e961e35450b70fad2a9cf/rsa-4.0-py2.py3-none-any.whl
Collecting pyasn1-modules>=0.2.1 (from google-auth>=1.4.1->google-api-python-client->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/91/f0/b03e00ce9fddf4827c42df1c3ce10c74eadebfb706231e8d6d1c356a4062/pyasn1_modules-0.2.5-py2.py3-none-any.whl
Collecting cachetools>=2.0.0 (from google-auth>=1.4.1->google-api-python-client->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/39/2b/d87fc2369242bd743883232c463f28205902b8579cb68dcf5b11eee1652f/cachetools-3.1.0-py2.py3-none-any.whl
Collecting oauthlib>=3.0.0 (from requests-oauthlib>=0.7.0->google-auth-oauthlib->taskw-gcal-sync===0.0.2)
  Downloading https://files.pythonhosted.org/packages/16/95/699466b05b72b94a41f662dc9edf87fda4289e3602ecd42d27fcaddf7b56/oauthlib-3.0.1-py2.py3-none-any.whl (142kB)
    100% |████████████████████████████████| 143kB 1.9MB/s
Collecting requests>=2.0.0 (from requests-oauthlib>=0.7.0->google-auth-oauthlib->taskw-gcal-sync===0.0.2)
  Downloading https://files.pythonhosted.org/packages/7d/e3/20f3d364d6c8e5d2353c72a67778eb189176f08e873c9900e10c0287b84b/requests-2.21.0-py2.py3-none-any.whl (57kB)
    100% |████████████████████████████████| 61kB 537kB/s
Collecting pyasn1>=0.1.3 (from rsa>=3.1.4->google-auth>=1.4.1->google-api-python-client->taskw-gcal-sync===0.0.2)
  Using cached https://files.pythonhosted.org/packages/7b/7c/c9386b82a25115cccf1903441bba3cbadcfae7b678a20167347fa8ded34c/pyasn1-0.4.5-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests>=2.0.0->requests-oauthlib>=0.7.0->google-auth-oauthlib->taskw-gcal-sync===0.0.2)
  Downloading https://files.pythonhosted.org/packages/60/75/f692a584e85b7eaba0e03827b3d51f45f571c2e793dd731e598828d380aa/certifi-2019.3.9-py2.py3-none-any.whl (158kB)
    100% |████████████████████████████████| 163kB 1.5MB/s
Collecting urllib3<1.25,>=1.21.1 (from requests>=2.0.0->requests-oauthlib>=0.7.0->google-auth-oauthlib->taskw-gcal-sync===0.0.2)
  Downloading https://files.pythonhosted.org/packages/01/11/525b02e4acc0c747de8b6ccdab376331597c569c42ea66ab0a1dbd36eca2/urllib3-1.24.3-py2.py3-none-any.whl (118kB)
    100% |████████████████████████████████| 122kB 2.0MB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests>=2.0.0->requests-oauthlib>=0.7.0->google-auth-oauthlib->taskw-gcal-sync===0.0.2)
  Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 1.2MB/s
Collecting idna<2.9,>=2.5 (from requests>=2.0.0->requests-oauthlib>=0.7.0->google-auth-oauthlib->taskw-gcal-sync===0.0.2)
  Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
    100% |████████████████████████████████| 61kB 1.4MB/s
Building wheels for collected packages: overrides
  Running setup.py bdist_wheel for overrides ... done
  Stored in directory: /home/a/.cache/pip/wheels/8d/52/86/e5a83b1797e7d263b458d2334edd2704c78508b3eea9323718
Successfully built overrides
Installing collected packages: bidict, click, colorlog, pyasn1, rsa, six, pyasn1-modules, cachetools, google-auth, httplib2, google-auth-httplib2, uritemplate, google-api-python-client, oauthlib, certifi, urllib3, chardet, idna, requests, requests-oauthlib, google-auth-oauthlib, typed-ast, mypy-extensions, mypy, overrides, pyyaml, rfc3339, sh, pytz, python-dateutil, kitchen, taskw, typing, taskw-gcal-sync
  Running setup.py install for taskw-gcal-sync ... done
Successfully installed bidict-0.18.0 cachetools-3.1.0 certifi-2019.3.9 chardet-3.0.4 click-7.0 colorlog-4.0.2 google-api-python-client-1.7.8 google-auth-1.6.3 google-auth-httplib2-0.0.3 google-auth-oauthlib-0.3.0 httplib2-0.12.3 idna-2.8 kitchen-1.2.6 mypy-0.701 mypy-extensions-0.4.1 oauthlib-3.0.1 overrides-1.9 pyasn1-0.4.5 pyasn1-modules-0.2.5 python-dateutil-2.8.0 pytz-2019.1 pyyaml-5.1 requests-2.21.0 requests-oauthlib-1.2.0 rfc3339-6.0 rsa-4.0 sh-1.12.14 six-1.12.0 taskw-1.2.0 taskw-gcal-sync-0.0.2 typed-ast-1.3.5 typing-3.6.6 uritemplate-3.0.0 urllib3-1.24.3
You are using pip version 8.1.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
a@DESKTOP-some_desktop:~/gCalSync$ tw_gcal_sync --help
Traceback (most recent call last):
  File "/home/a/.local/bin/tw_gcal_sync", line 3, in <module>
    from taskw_gcal_sync import TWGCalAggregator
  File "/home/a/.local/lib/python3.5/site-packages/taskw_gcal_sync/__init__.py", line 4, in <module>
    from taskw_gcal_sync.TaskWarriorSide import TaskWarriorSide
  File "/home/a/.local/lib/python3.5/site-packages/taskw_gcal_sync/TaskWarriorSide.py", line 25
    self.items: Dict[str, List[dict]] = []
              ^
SyntaxError: invalid syntax
a@DESKTOP-some_desktop:~/gCalSync$ taskw-gcal-sync --help
taskw-gcal-sync: command not found
a@DESKTOP-some_desktop:~/gCalSync$ taskw-gcal-sync
taskw-gcal-sync: command not found
a@DESKTOP-some_desktop:~/gCalSync$ tw_gcal_sync
Traceback (most recent call last):
  File "/home/a/.local/bin/tw_gcal_sync", line 3, in <module>
    from taskw_gcal_sync import TWGCalAggregator
  File "/home/a/.local/lib/python3.5/site-packages/taskw_gcal_sync/__init__.py", line 4, in <module>
    from taskw_gcal_sync.TaskWarriorSide import TaskWarriorSide
  File "/home/a/.local/lib/python3.5/site-packages/taskw_gcal_sync/TaskWarriorSide.py", line 25
    self.items: Dict[str, List[dict]] = []
              ^
SyntaxError: invalid syntax
a@DESKTOP-some_desktop:~/gCalSync$

[tw_gcal_sync] latency between edit and sync

After creating a task in TW, how quickly will the associated gcal calendar update?

I saw that the synchronizer being used (item-synchronizer) is event-driven (e.g., if a task is added/edited it updates the other side) so I'm not sure why there's such a delay (> 1 hour).
I'd love to use this sync functionality but it seems like I'll need to use the cron sync method.

I'm on macOS 12.3 on an M1 mac running Python 3.9.10, let me know if I can help debug.

Thanks for the all work you've done, I appreciate it!

Errors out datetime

I keep running into what seems like a parsing error. Some of the items are synced and then it fails with something like this...

GCalSide: 2020-06-05 12:18:22 - WARNING  - Extra arguments in get_all_items call are not supported yet, ignoring them: {'order_by': None, 'use_ascending_order': True}
taskw_gcal_sync.TWGCalAggregator: 2020-06-05 12:18:26 - INFO     - [gcal] Registering items...
taskw_gcal_sync.TWGCalAggregator: 2020-06-05 12:18:26 - INFO     - [gcal] Inserting item, id: ptge8qgim8976j1665oulot6uc...

TaskWarrior
-----------
        * Tasks created: 0
        * Tasks updated: 0
        * Tasks deleted: 0
        * Errors:        0

Google Calendar
---------------
        * Tasks created: 0
        * Tasks updated: 0
        * Tasks deleted: 0
        * Errors:        0

Traceback (most recent call last):
  File "/home/bc/.local/bin/tw_gcal_sync", line 61, in <module>
    main()
  File "/usr/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/bc/.local/bin/tw_gcal_sync", line 53, in main
    aggregator.register_items(gcal_items, "gcal")
  File "/home/bc/.local/lib/python3.8/site-packages/taskw_gcal_sync/TWGCalAggregator.py", line 184, in register_items
    item_converted = convert_fun(item)
  File "/home/bc/.local/lib/python3.8/site-packages/taskw_gcal_sync/TWGCalAggregator.py", line 512, in convert_gcal_to_tw
    tw_item['due'] = GCalSide.get_event_time(gcal_item, t='end')
  File "/home/bc/.local/lib/python3.8/site-packages/taskw_gcal_sync/GCalSide.py", line 227, in get_event_time
    dt = GCalSide.parse_datetime(
  File "/home/bc/.local/lib/python3.8/site-packages/taskw_gcal_sync/GCalSide.py", line 289, in parse_datetime
    assert dot_pos != -1 and \
AssertionError

[Bug] bubop - Not enough arguments provided

Trying to launch the latest version of the software fails.

System:

  • python v3.8.8
  • KUbuntu 21.10

Steps to follow:

  • pip3 install --user git+https://github.com/bergercookie/taskwarrior-syncall
    (FYI, it installs bubop 0.1.6a)

  • ~/.local/bin/tw_gcal_sync -c "GCAL_CALENDAR" -t "TW_TAG"

I get the following error:

Traceback (most recent call last):
  File "/home/petemir/.local/bin/tw_gcal_sync", line 11, in <module>
    sys.exit(main())
  File "/home/petemir/Apps/anaconda3/envs/newbase/lib/python3.8/site-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/home/petemir/Apps/anaconda3/envs/newbase/lib/python3.8/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/home/petemir/Apps/anaconda3/envs/newbase/lib/python3.8/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/petemir/Apps/anaconda3/envs/newbase/lib/python3.8/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/home/petemir/.local/lib/python3.8/site-packages/taskwarrior_syncall/scripts/tw_gcal_sync.py", line 88, in main
    check_required_mutually_exclusive(combination_name, custom_combination_savename)
  File "/home/petemir/.local/lib/python3.8/site-packages/bubop/cli.py", line 30, in check_required_mutually_exclusive
    raise NotEnoughArgumentsError()
bubop.exceptions.NotEnoughArgumentsError: Not enough arguments provided

Deleting lines 88-98 lets me run the program, but obviously, I would be missing some kind of additional validation.

Thanks!

[BUG] Tasks originally created in Google Calendar don't have UUID, task status in their body - cannot complete them from Google Calendar Side

Not sure if this is a bug.
When I enter an event in GCal, then sync, it gets to TW with the proper due date and time.
Then add a status: completed on the calendar event description, it does not sync make the TW task done. I even manually added the uuid: to the description in the event, sync, same thing.

Also, even TW originated tasks, when editing the sync'd event status in the description does not make the TW task done.

[Feature Request] Exclude/ignore "other side" events (by title)

I'm looking at using tw_gcal_sync to sync my upcoming meetings into taskwarrior. I have some events on my calendar that I will never want synced (e.g. "Lunch (via Clockwise)").

I would like to be able to specify a list of substrings (e.g. "via Clockwise") whose presence will cause tw_gcal_sync to exclude an event from the set considered to be present in GCal, so they will never be synced.

Several errors in the logs

Hello,

I am sorry for not being able to be more clear in the title nor the following description, but I am having diverse errors when trying to synchronize. I originally created the tasks in taskwarrior and did the sync, expecting to see the tasks in Gcal. That occurred, but I guess something wrong happened with subsequent syncs, and now I have some calendar events which only say "day" -which actually seems to be the 'description' of the tasks, and not the title?-, and the same happens on my task list.

I attach in a file the errors I got. I redacted some tasks titles ($Task1, $Task2) and annotations ($Annotation1, $Annotation2). I left the 'day' title though.

twgcalsync_errors.log

Let me know if there's anything I can do to help debug the issue, and thanks in advance.

Edit:

So, any of the problems here messed up my task list... e.g. $Task1 appears as deleted in taskwarrior now, although I never deleted it, not in Calendar nor TW.

This works on linux?

Im running first time

 tw_gcal_sync -t task -c "Tasks"

but wont open a browser nor any type of auth and fails because lack of credentials.


Traceback (most recent call last):
  File "/home/rek2/.local/bin/tw_gcal_sync", line 71, in <module>
    main()
  File "/usr/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/rek2/.local/bin/tw_gcal_sync", line 50, in main
    aggregator.start()
  File "/home/rek2/.local/lib/python3.8/site-packages/taskw_gcal_sync/TWGCalAggregator.py", line 131, in start
    self.gcal_side.start()
  File "/home/rek2/.local/lib/python3.8/site-packages/taskw_gcal_sync/GCalSide.py", line 56, in start
    self.gain_access()
  File "/home/rek2/.local/lib/python3.8/site-packages/taskw_gcal_sync/GCalSide.py", line 214, in gain_access
    creds = self._get_credentials()
  File "/home/rek2/.local/lib/python3.8/site-packages/taskw_gcal_sync/GCalSide.py", line 196, in _get_credentials
    creds.refresh(Request())
  File "/home/rek2/.local/lib/python3.8/site-packages/google/oauth2/credentials.py", line 176, in refresh
    access_token, refresh_token, expiry, grant_response = _client.refresh_grant(
  File "/home/rek2/.local/lib/python3.8/site-packages/google/oauth2/_client.py", line 248, in refresh_grant
    response_data = _token_endpoint_request(request, token_uri, body)
  File "/home/rek2/.local/lib/python3.8/site-packages/google/oauth2/_client.py", line 124, in _token_endpoint_request
    _handle_error_response(response_body)
  File "/home/rek2/.local/lib/python3.8/site-packages/google/oauth2/_client.py", line 60, in _handle_error_response
    raise exceptions.RefreshError(error_details, response_body)
google.auth.exceptions.RefreshError: ('invalid_scope: Some requested scopes were invalid. {invalid=[a, c, d, e, g, h, i, l, m, ., n, /, o, p, r, s, t, u, w, :]}', '{\n  "error": "invalid_scope",\n  "error_description": "Some requested scopes were invalid. {invalid\\u003d[a, c, d, e, g, h, i, l, m, ., n, /, o, p, r, s, t, u, w, :]}",\n  "error_uri": "http://code.google.com/apis/accounts/docs/OAuth2.html"\n}')

Handling tasks in order of urgency instead of ID

Hi.

Is it/could one make it possible to specify which order to create/delete/handle the tasks in? In my case, I would like to handle them by urgency. I believe that right now, they're handled according to ID.

If you give my some pointers to where things would have to be changed in the code, I can perhaps change it myself.

It probably sounds like an odd request, so i'll have to explain my setup and why it matters.

I use taskw_gcal_sync to sync taskwarrior tasks I want to view from my (Android) phone. But I don't view them directly through google calendar - instead i use the todo-app TickTick which can import tasks from google calendar. I do so, because it lets me see my most urgent tasks on my lock screen and in my notification bar - and I can mark them as done. Also I can easily see all the individual tasks, which is difficult in google calendar when I have many small tasks scheduled. So as an example, when I have to do various kinds of housework i create a task for each thing and then sync all those tasks.

Apparently if two tasks have the same due time, they are listed in the order they are created. So to achieve the right order, I have to schedule them all one minute apart in the order I want.

Hopefully it makes sense.

Kind regards
Stefan

Current status?

Hello,

I've been hoping for a gcal/taskwarrior sync tool for a long time. What is the current status of this? And could you please add installation and usage instructions into the README?

BTW, I would be interested in helping with the development if this fits my need, although right now I am rather overwhelmed, so I can't promise anything.

Thanks a lot!

One-directional sync?

Howdy 👋

I use tools such as bugwarrior with my install of task, and such, prefer to use task as a sort of overview as well as a todo list. Queries such as task +DUETODAY are never too far behind in my shell history 😄

Here's my question:

I have a bazillion google calendars to keep track of. I don't want to edit all of these (aside from maybe 1 or 2). Can I just pull in events from calendars?

Cheers!
kayak

[Tw Inserter] Operation failed - Google Keep

The sync TW -> Keep it's working fine. But the other way(Keep -> TW) it's working due this [Tw Inserter] Operation failed erros.

Describe the bug


18:18:54.88 | INFO     	| Loading preferences...
18:18:54.90 | INFO     	| 

Configuration: 
===============

  - TW Tags         : ('test_tag',)
  - TW Project      : None
  - Google Keep Note: Test Note



18:18:54.93 | INFO     	| Loading preferences...
18:18:58.72 | INFO     	| Initializing Taskwarrior...
18:18:58.84 | INFO     	| Detecting changes from GKeep...
18:18:58.91 | INFO     	| Detecting changes from Tw...
18:18:59.00 | INFO     	| [GKeep] Inserting item [          ] at Tw...
18:18:59.04 | ERROR    	| [Tw Inserter] Operation failed.
18:18:59.05 | INFO     	| [GKeep] Inserting item [Otem      ] at Tw...
18:18:59.22 | ERROR    	| [Tw Inserter] Operation failed.
18:18:59.22 | WARNING  	| 

Google Keep
-----------
	* Items created: 0
	* Items updated: 0
	* Items deleted: 0

Taskwarrior
-----------
	* Items created: 2
	* Items updated: 0
	* Items deleted: 0

18:18:59.22 | INFO     	| Flushing data to remote Google Keep...
18:18:59.50 | SUCCESS  	| Sync completed successfully. You can now use the -b/--combination option to refer to this particular combination

  tw_gkeep_sync --combination Test%20Note__None__test_tag

--version of your executable

tw_gkeep_sync, version 1.2.2a0

[Feature Request] Respect $XDG_CONFIG_HOME path

From 2.6.0 taskwarrior version it attempts to find config file at '$XDG_CONFIG_HOME/task/taskrc'. Unfortunately taskwarrior-syncall prints error if can't find .taskrc in home folder.
IDK if this issue should be a BUG.

Traceback (most recent call last):
  File "/home/miro/.local/bin/tw_gcal_sync", line 8, in <module>
    sys.exit(main())
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/miro/.local/lib/python3.10/site-packages/taskwarrior_syncall/scripts/tw_gcal_sync.py", line 142, in main
    tw_side = TaskWarriorSide(tags=tw_tags, project=tw_project)
  File "/home/miro/.local/lib/python3.10/site-packages/taskwarrior_syncall/taskwarrior_side.py", line 53, in __init__
    self._tw = TaskWarrior(marshal=True, config_filename=config_file)
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/warrior.py", line 438, in __init__
    super(TaskWarriorShellout, self).__init__(config_filename)
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/warrior.py", line 62, in __init__
    self.config = TaskWarriorBase.load_config(config_filename)
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/warrior.py", line 180, in load_config
    return TaskRc(config_filename, overrides=overrides)
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/taskrc.py", line 58, in __init__
    config = self._read(self.path)
  File "/home/miro/.local/lib/python3.10/site-packages/taskw/taskrc.py", line 96, in _read
    with codecs.open(path, 'r', 'utf8') as config_file:
  File "/usr/lib/python3.10/codecs.py", line 905, in open
    file = builtins.open(filename, mode, buffering)
FileNotFoundError: [Errno 2] No such file or directory: '/home/miro/.taskrc'

versions

tw_gcal_sync, version 1.2.1
taskwarrior 2.6.2

Sync as Google Tasks

It would be great to have options to be synced as Google Tasks, or Google Reminder, rather than as events

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.