2024-09-26 15:49:16 +00:00
|
|
|
# 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.
|
2024-09-26 21:13:10 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
Limitations:
|
|
|
|
|
2024-09-26 22:01:32 +00:00
|
|
|
- Only cards in todolist is fetched at the moment.
|
2024-09-26 21:13:10 +00:00
|
|
|
- Doesn't include title anywhere.
|
|
|
|
- Tasks cannot be updated or changed.
|
2024-09-26 22:01:32 +00:00
|
|
|
- Slow, due to inefficient use of caches.
|
2024-09-26 21:13:10 +00:00
|
|
|
|
|
|
|
A more complete implementation will probably require a Markdown parser, to
|
|
|
|
parse the saved input, and distribute it across the various Card fields (card
|
|
|
|
name, description, tasks, etc...)
|
2024-09-26 22:01:32 +00:00
|
|
|
|
|
|
|
## 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 <MOUNT_DIR>`. 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.)
|
2024-09-26 15:49:16 +00:00
|
|
|
""".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',
|
2024-09-26 22:27:52 +00:00
|
|
|
'requests-cache',
|
|
|
|
'fuse-python',
|
2024-09-26 15:49:16 +00:00
|
|
|
'secret_loader @ git+https://gitfub.space/Jmaa/secret_loader',
|
|
|
|
]
|
2024-09-26 22:27:52 +00:00
|
|
|
REQUIREMENTS_TEST = [
|
|
|
|
'pytest',
|
|
|
|
]
|
2024-09-26 15:49:16 +00:00
|
|
|
|
|
|
|
|
|
|
|
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',
|
|
|
|
)
|