# WARNING # # THIS IS AN AUTOGENERATED FILE. # # MANUAL CHANGES CAN AND WILL BE OVERWRITTEN. import re from setuptools import setup PACKAGE_NAME = 'favro_sync' PACKAGE_DESCRIPTION = """ # 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: Update Tags - [ ] Frontmatter: Updated assigned members - [ ] Frontmatter: Arbitrary structured data? Read-only. - [ ] Frontmatter: Dependencies. As vault links in Obsidian mode. - [ ] 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. """.strip() PACKAGE_DESCRIPTION_SHORT = """ Filesystem in User Space for Favro.""".strip() def parse_version_file(text: str) -> str: match = re.match(r'^__version__\s*=\s*(["\'])([\d\.]+)\1$', text) if match is None: msg = 'Malformed _version.py file!' raise Exception(msg) return match.group(2) with open(PACKAGE_NAME + '/_version.py') as f: version = parse_version_file(f.read()) REQUIREMENTS_MAIN = [ 'requests', 'requests-cache', 'fuse-python', 'secret_loader @ git+https://gitfub.space/Jmaa/secret_loader', 'marko', 'python-frontmatter', ] REQUIREMENTS_TEST = [ 'pytest', ] setup( name=PACKAGE_NAME, version=version, description=PACKAGE_DESCRIPTION_SHORT, long_description=PACKAGE_DESCRIPTION, long_description_content_type='text/markdown', author='Jon Michael Aanes', author_email='jonjmaa@gmail.com', url='https://gitfub.space/Jmaa/' + PACKAGE_NAME, packages=[PACKAGE_NAME], install_requires=REQUIREMENTS_MAIN, extras_require={ 'test': REQUIREMENTS_TEST, }, python_requires='>=3.9', )