favro-sync (0.1.11)
Installation
pip install --index-url favro-sync
About this package
Filesystem in User Space for Favro.
Favro Sync.
Filesystem in User Space for Favro.
Synchronize your local notes and your Favro.
Uses the Favro API. Rate limiting depends upon your organization's payment plan.
Uses python-fuse
library.
Features
The feature set is mainly aimed towards giving a better writing experience in Favro. Management and organization features have been left out.
Features:
- Access collections and cards in a file hierarchy.
- Read card features:
- Title
- Description
- Tags
- Assignees
- Dependencies
- Custom fields
- Change card features:
- Title
- Description
- Obsidian compatibility:
- Mountable within your vault.
- Link to cards by either card number or card title.
- Tags and dependencies are integrated.
Limitations:
- Tasks (checklists on cards) cannot be updated or changed.
- Images cannot be updated or changed.
- You cannot create new cards, nor any other files.
- Collection order is not presented.
Usage
- Install dependencies
pip install -r requirements.txt
- Setup secrets:
FAVRO_ORGANIZATION_ID
,FAVRO_USERNAME
,FAVRO_PASSWORD
. - Run
python -m favro_sync <MOUNT_DIR>
. Use the--help
argument to get an overview of all supported flags (there is a lot, becausepython-fuse
implements a whole bunch automatically.)
Use umount
to unmount the mounted directory again.
Directory structure and latency
Directory structure is something like:
mount
-> Collection A
-> CARD-101
-> CARD-111
-> ...
-> Collection B
-> CARD-201
-> CARD-221
-> ...
-> ...
Some programs like Obsidian eagerly load and cache unneeded files in memory,
which can reduce performance when those files are fetched over a network. You
can limit this by configuring favro-sync to only expose individual collections
by adding a FAVRO_COLLECTION_FILTER
secret containing allowed collection
names, like so:
Collection A
Collection B
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.
- Save updated TaskList along with card (using
PUT cards
) - Get the Card's TaskList.
- Remove all TaskList's except for the latest (how to determine latest?)
- That's three requests just to save a freaking list of tasks!
- Save updated TaskList along with card (using
- Frontmatter: Writable Dependencies.
- Usability: Allow users to toggle Obsidian mode, instead of being default.
- Precision: Get the correct last-modified date.
- Performance: Improve cache behaviour. User and tags can have much longer cache times.
- Performance: Parallelize requests.
- Paginated pages can be easily parallelize.
- Usability: Richer directory structure
- Frontmatter: Arbitrary structured data (Custom Fields)? Read-only.
- Frontmatter: Readable Dependencies. As vault links in Obsidian mode.