"""# Favro Sync. Filesystem in User Space for Favro. Synchronize your local notes and your Favro. Uses the [Favro API](https://favro.com/developer/). Rate limiting depends upon your organization's payment plan. Uses [`python-fuse`](https://github.com/libfuse/python-fuse) library. Features: - Local access to cards in todolist. - Read card features: - Title - Description - Tags - Assignees - Dependencies - Change card features: - Title - Description - [Obsidian](https://obsidian.md/) compatibility: - Mountable within your vault. - Link to cards by either card number or card title. - Tags and dependencies are integrated. Limitations: - Only cards in todolist is fetched at the moment. - Tasks (checklists on cards) cannot be updated or changed. - Images cannot be updated or changed. - You cannot create new cards, nor any other files. ## Usage 1. Install dependencies `pip install -r requirements.txt` 2. Setup [secrets](https://gitfub.space/Jmaa/secret_loader]): `FAVRO_ORGANIZATION_ID`, `FAVRO_USERNAME`, `FAVRO_PASSWORD`. 3. Run `python -m favro_sync `. Use the `--help` argument to get an overview of all supported flags (there is a lot, because [`python-fuse`](https://github.com/libfuse/python-fuse) implements a whole bunch automatically.) ## Architecture - `FavroFuse` - Markdown Parser/Renderer - `FavroClient` - `CardCache` ## Work in Progress Following features are work in progress: - [ ] Frontmatter: Writable Tags - [ ] Frontmatter: Writable assigned members - [ ] Frontmatter: Writable Tasks. 1. Save updated TaskList along with card (using `PUT cards`) 2. Get the Card's TaskList. 3. Remove all TaskList's except for the latest (how to determine latest?) 4. That's three requests just to save a freaking list of tasks! - [ ] Frontmatter: Arbitrary structured data (Custom Fields)? Read-only. - [ ] Frontmatter: Readable Dependencies. As vault links in Obsidian mode. - [ ] Frontmatter: Writable Dependencies. - [ ] Allow users to toggle Obsidian mode, instead of being default. - [ ] Get the correct last-modified date. - [ ] Improve cache behaviour. User and tags can have much longer cache times. """ __all__ = ['__version__'] from ._version import __version__