From 1e9283a25d58cb284c6b008d7592f8626a08de0d Mon Sep 17 00:00:00 2001 From: Ilya Tsakunov Date: Mon, 12 Jan 2026 19:27:07 +0100 Subject: [PATCH 1/4] Add desktop requirements --- requirements-desktop.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 requirements-desktop.txt diff --git a/requirements-desktop.txt b/requirements-desktop.txt new file mode 100644 index 0000000..189a3a9 --- /dev/null +++ b/requirements-desktop.txt @@ -0,0 +1,6 @@ +# The following requirements are not required for package and can be installed separately +# TODO: ideally this should be transformed into pyproject.toml optional dependencies +pyautogui==0.9.54 +doclick==0.1.7 +pywinauto==0.6.6 +openpyxl==3.1.2 \ No newline at end of file From 1e539b667a72af24b057ad14835c8b5a910b4834 Mon Sep 17 00:00:00 2001 From: Ilya Tsakunov Date: Mon, 12 Jan 2026 19:27:20 +0100 Subject: [PATCH 2/4] Load installation requirements from file --- setup.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 24e10d2..2fce1e9 100644 --- a/setup.py +++ b/setup.py @@ -2,6 +2,9 @@ with open("README.md", "r") as fh: long_description = fh.read() + +with open('requirements.txt') as f: + requirements = f.read().splitlines() setuptools.setup( name='forloop_modules', @@ -18,9 +21,7 @@ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], - install_requires=[ - 'flogg' - ], + install_requires=requirements, python_requires='>=3.6', ) \ No newline at end of file From 3d395277a73c3071c16711f915f350e21c084c15 Mon Sep 17 00:00:00 2001 From: Ilya Tsakunov Date: Mon, 12 Jan 2026 19:29:12 +0100 Subject: [PATCH 3/4] Update, pin and sort dependencies --- requirements.txt | 109 +++++++++++++++++++++++++++-------------------- 1 file changed, 62 insertions(+), 47 deletions(-) diff --git a/requirements.txt b/requirements.txt index bb3285f..a66d0a4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,48 +1,63 @@ -annotated-types>=0.6.0 -anyio>=3.7.1 -async-timeout>=4.0.3 +PyMySQL==1.1.0 +annotated-types==0.6.0 +anyio==3.7.1 +async-timeout==4.0.3 beautifulsoup4==4.12.2 -cachetools>=5.3.1 -certifi>=2023.7.22 -charset-normalizer>=3.3.0 -dbhydra>=1.2.11 -deepdiff>=6.6.0 -dnspython>=2.4.2 -exceptiongroup>=1.1.3 -fastapi>=0.103.2 -filehydra>=0.1.5 -google-api-core>=2.12.0 -google-auth>=2.23.2 -google-cloud-bigquery>=3.12.0 -google-cloud-core>=2.3.3 -google-crc32c>=1.5.0 -google-resumable-media>=2.6.0 -googleapis-common-protos>=1.60.0 -grpcio>=1.59.0 -grpcio-status>=1.59.0 -idna>=3.4 -numpy>=1.26.0 -ordered-set>=4.1.0 -packaging>=23.2 -pandas>=2.1.1 -pathlib>=1.0.1 -proto-plus>=1.22.3 -protobuf>=4.24.4 -pyasn1>=0.5.0 -pyasn1-modules>=0.3.0 -pydantic>=2.4.2 -pydantic_core>=2.10.1 -pymongo>=4.5.0 -PyMySQL>=1.1.0 -pyodbc>=4.0.39 -python-dateutil>=2.8.2 -pytz>=2023.3.post1 -redis>=5.0.1 -requests>=2.31.0 -rsa>=4.9 -six>=1.16.0 -sniffio>=1.3.0 -starlette>=0.27.0 -typing_extensions>=4.8.0 -tzdata>=2023.3 -urllib3>=2.0.6 +cachetools==5.3.1 +certifi==2023.7.22 +charset-normalizer==3.3.0 +dash==3.0.2 +dbhydra==1.2.11 +deepdiff==6.6.0 +dnspython==2.4.2 +docrawl==1.4.1 +e2b-desktop==2.2.0 +e2b_code_interpreter==2.4.1 +exceptiongroup==1.1.3 +fastapi==0.104.0 +filehydra==0.1.5 +google-api-core==2.12.0 +google-api-python-client==2.100.0 +google-auth==2.23.2 +google-cloud-bigquery==3.12.0 +google-cloud-core==2.3.3 +google-crc32c==1.5.0 +google-resumable-media==2.6.0 +googleapis-common-protos==1.60.0 +grpcio-status==1.59.0 +grpcio==1.59.0 +gspread==5.11.2 +httpx==0.27.0 +idna==3.4 +keepvariable==1.2.14 +numpy==1.26.0 +ordered-set==4.1.0 +packaging==23.2 +pandas==2.1.1 +pathlib==1.0.1 +pdfminer==20191125 +pillow==12.1.0 +proto-plus==1.22.3 +protobuf==4.24.4 +pyairtable==2.1.0.post1 +pyasn1-modules==0.3.0 +pyasn1==0.5.0 +pydantic==2.7. +pydantic_core==2.10.1 +pymongo==4.5.0 +pyodbc==4.0.39 +python-dateutil==2.8.2 +python-multipart==0.0.6 +pytz==2023.3.post1 +redis==5.2.1 +requests==2.31.0 +rrcf==0.4.4 +rsa==4.9 +scikit-learn==1.3.1 +six==1.16.0 +slackclient==2.9.4 +sniffio==1.3.0 +starlette==0.27.0 +typing_extensions==4.8.0 +tzdata==2023.3 +urllib3==2.0.6 \ No newline at end of file From c9a5d3ec6df8827d30957ab2bc320ac352834d2a Mon Sep 17 00:00:00 2001 From: Ilya Tsakunov Date: Mon, 12 Jan 2026 21:57:19 +0100 Subject: [PATCH 4/4] Clean dependencies --- requirements.txt | 44 ++++++-------------------------------------- 1 file changed, 6 insertions(+), 38 deletions(-) diff --git a/requirements.txt b/requirements.txt index a66d0a4..99c4c98 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,63 +1,31 @@ -PyMySQL==1.1.0 -annotated-types==0.6.0 -anyio==3.7.1 -async-timeout==4.0.3 beautifulsoup4==4.12.2 -cachetools==5.3.1 -certifi==2023.7.22 -charset-normalizer==3.3.0 dash==3.0.2 dbhydra==1.2.11 deepdiff==6.6.0 -dnspython==2.4.2 docrawl==1.4.1 -e2b-desktop==2.2.0 -e2b_code_interpreter==2.4.1 -exceptiongroup==1.1.3 +e2b-desktop==2.0.0 +e2b_code_interpreter==2.0.0 fastapi==0.104.0 filehydra==0.1.5 google-api-core==2.12.0 google-api-python-client==2.100.0 google-auth==2.23.2 -google-cloud-bigquery==3.12.0 google-cloud-core==2.3.3 -google-crc32c==1.5.0 -google-resumable-media==2.6.0 -googleapis-common-protos==1.60.0 -grpcio-status==1.59.0 -grpcio==1.59.0 gspread==5.11.2 httpx==0.27.0 -idna==3.4 keepvariable==1.2.14 numpy==1.26.0 -ordered-set==4.1.0 -packaging==23.2 +packaging==24.1 pandas==2.1.1 -pathlib==1.0.1 pdfminer==20191125 -pillow==12.1.0 -proto-plus==1.22.3 -protobuf==4.24.4 +pillow==11.1.0 pyairtable==2.1.0.post1 -pyasn1-modules==0.3.0 -pyasn1==0.5.0 -pydantic==2.7. -pydantic_core==2.10.1 -pymongo==4.5.0 -pyodbc==4.0.39 +pydantic==2.7.4 python-dateutil==2.8.2 -python-multipart==0.0.6 -pytz==2023.3.post1 redis==5.2.1 -requests==2.31.0 +requests==2.32.3 rrcf==0.4.4 rsa==4.9 scikit-learn==1.3.1 -six==1.16.0 slackclient==2.9.4 -sniffio==1.3.0 -starlette==0.27.0 typing_extensions==4.8.0 -tzdata==2023.3 -urllib3==2.0.6 \ No newline at end of file