[MISC] Added compose watch configuration for easy development (#1378)
[MISC] Update compose override to include watch configuration, updated deps to include debugpy for all services
This commit is contained in:
committed by
GitHub
parent
f277dcf182
commit
2fcb102f97
@@ -67,6 +67,7 @@ dev = [
|
||||
# For file watching
|
||||
"inotify>=0.2.10",
|
||||
"poethepoet>=0.33.1",
|
||||
"debugpy>=1.8.14"
|
||||
]
|
||||
test = ["pytest>=8.0.1", "pytest-dotenv==0.5.2"]
|
||||
deploy = [
|
||||
|
||||
15
backend/uv.lock
generated
15
backend/uv.lock
generated
@@ -709,6 +709,19 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "debugpy"
|
||||
version = "1.8.14"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/bd/75/087fe07d40f490a78782ff3b0a30e3968936854105487decdb33446d4b0e/debugpy-1.8.14.tar.gz", hash = "sha256:7cd287184318416850aa8b60ac90105837bb1e59531898c07569d197d2ed5322", size = 1641444 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/d9/2a/ac2df0eda4898f29c46eb6713a5148e6f8b2b389c8ec9e425a4a1d67bf07/debugpy-1.8.14-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:8899c17920d089cfa23e6005ad9f22582fd86f144b23acb9feeda59e84405b84", size = 2501268 },
|
||||
{ url = "https://files.pythonhosted.org/packages/10/53/0a0cb5d79dd9f7039169f8bf94a144ad3efa52cc519940b3b7dde23bcb89/debugpy-1.8.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6bb5c0dcf80ad5dbc7b7d6eac484e2af34bdacdf81df09b6a3e62792b722826", size = 4221077 },
|
||||
{ url = "https://files.pythonhosted.org/packages/f8/d5/84e01821f362327bf4828728aa31e907a2eca7c78cd7c6ec062780d249f8/debugpy-1.8.14-cp312-cp312-win32.whl", hash = "sha256:281d44d248a0e1791ad0eafdbbd2912ff0de9eec48022a5bfbc332957487ed3f", size = 5255127 },
|
||||
{ url = "https://files.pythonhosted.org/packages/33/16/1ed929d812c758295cac7f9cf3dab5c73439c83d9091f2d91871e648093e/debugpy-1.8.14-cp312-cp312-win_amd64.whl", hash = "sha256:5aa56ef8538893e4502a7d79047fe39b1dae08d9ae257074c6464a7b290b806f", size = 5297249 },
|
||||
{ url = "https://files.pythonhosted.org/packages/97/1a/481f33c37ee3ac8040d3d51fc4c4e4e7e61cb08b8bc8971d6032acc2279f/debugpy-1.8.14-py2.py3-none-any.whl", hash = "sha256:5cd9a579d553b6cb9759a7908a41988ee6280b961f24f63336835d9418216a20", size = 5256230 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "decorator"
|
||||
version = "5.2.1"
|
||||
@@ -3904,6 +3917,7 @@ deploy = [
|
||||
{ name = "opentelemetry-exporter-otlp" },
|
||||
]
|
||||
dev = [
|
||||
{ name = "debugpy" },
|
||||
{ name = "inotify" },
|
||||
{ name = "poethepoet" },
|
||||
{ name = "unstract-connectors" },
|
||||
@@ -3966,6 +3980,7 @@ deploy = [
|
||||
{ name = "opentelemetry-exporter-otlp" },
|
||||
]
|
||||
dev = [
|
||||
{ name = "debugpy", specifier = ">=1.8.14" },
|
||||
{ name = "inotify", specifier = ">=0.2.10" },
|
||||
{ name = "poethepoet", specifier = ">=0.33.1" },
|
||||
{ name = "unstract-connectors", editable = "../unstract/connectors" },
|
||||
|
||||
109
docker/README.md
109
docker/README.md
@@ -8,6 +8,9 @@ VERSION=dev docker compose -f docker-compose.build.yaml build
|
||||
|
||||
# Build a specific service alone
|
||||
VERSION=dev docker compose -f docker-compose.build.yaml build frontend
|
||||
|
||||
# Build optional services also
|
||||
VERSION=dev docker compose -f docker-compose.build.yaml --profile optional build
|
||||
```
|
||||
|
||||
## Docker Run
|
||||
@@ -20,25 +23,16 @@ VERSION=dev docker compose -f docker-compose.yaml up -d
|
||||
|
||||
# Up a specific service alone
|
||||
VERSION=dev docker compose -f docker-compose.yaml up -d frontend
|
||||
```
|
||||
|
||||
Now access frontend at http://frontend.unstract.localhost
|
||||
|
||||
## Docker Build and Run Optional Services
|
||||
|
||||
Some services are kept optional and will not be built or started by default. Run them as follows.
|
||||
|
||||
```bash
|
||||
# Build optional services also
|
||||
VERSION=dev docker compose -f docker-compose.build.yaml --profile optional build
|
||||
# Up optional services also
|
||||
VERSION=dev docker compose -f docker-compose.yaml --profile optional up -d
|
||||
```
|
||||
|
||||
Now access frontend at http://frontend.unstract.localhost
|
||||
|
||||
## Overriding a service's config
|
||||
|
||||
By making use of the [merge compose files](https://docs.docker.com/compose/how-tos/multiple-compose-files/merge/) feature its
|
||||
possible to override some configuration that's used by the services.
|
||||
By making use of the [merge compose files](https://docs.docker.com/compose/how-tos/multiple-compose-files/merge/) feature its possible to override some configuration that's used by the services.
|
||||
|
||||
Copy and rename the `sample.compose.override.yaml` to `compose.override.yaml` and update it as necessary.
|
||||
|
||||
@@ -49,11 +43,94 @@ cp sample.compose.override.yaml compose.override.yaml
|
||||
VERSION=dev docker compose -f docker-compose.yaml -f compose.override.yaml up -d
|
||||
```
|
||||
|
||||
This can be useful during development to
|
||||
This can be useful during development to:
|
||||
|
||||
- not run some memory intensive services
|
||||
- use commands with different arguments to save resources
|
||||
- mount additional volumes or define additional env to configure behaviour
|
||||
- Not run some memory intensive services
|
||||
- Use commands with different arguments to save resources
|
||||
- Mount additional volumes or define additional env to configure behaviour
|
||||
|
||||
## Development with Docker Compose Watch
|
||||
|
||||
[Docker Compose Watch](https://docs.docker.com/compose/how-tos/file-watch/) (available in Docker Compose v2.22.0+) enables a streamlined development workflow by automatically syncing code changes to containers and restarting services as needed.
|
||||
|
||||
### Setting Up Watch Mode
|
||||
|
||||
1. Ensure you're using Docker Compose v2.22.0 or higher
|
||||
|
||||
```bash
|
||||
docker compose version
|
||||
```
|
||||
|
||||
2. Create your `compose.override.yaml` with watch configurations
|
||||
|
||||
```bash
|
||||
cp sample.compose.override.yaml compose.override.yaml
|
||||
```
|
||||
|
||||
3. Start services with watch mode enabled
|
||||
|
||||
```bash
|
||||
VERSION=dev docker compose -f docker-compose.yaml -f compose.override.yaml watch
|
||||
```
|
||||
|
||||
### Example Workflow
|
||||
|
||||
1. Start services with watch mode:
|
||||
|
||||
```bash
|
||||
VERSION=dev docker compose -f docker-compose.yaml -f compose.override.yaml watch
|
||||
```
|
||||
|
||||
1. Make changes to your code in your local editor
|
||||
1. Changes are automatically synced to the container and services restart as needed
|
||||
1. For debugging:
|
||||
- Configure IDE to connect to the appropriate debugpy port
|
||||
Here's an example `launch.json` (for VSCode) to attach to a the `backend` container on port 5678.
|
||||
It assumes that a workspace involving unstract and unstract-sdk is setup.
|
||||
For more information on this refer [VSCode docs](https://code.visualstudio.com/docs/devcontainers/attach-container#_attach-to-a-docker-container).
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "Docker: Backend Remote Debug",
|
||||
"type": "debugpy",
|
||||
"request": "attach",
|
||||
"connect": {
|
||||
"host": "localhost",
|
||||
"port": 5678
|
||||
},
|
||||
"pathMappings": [
|
||||
{
|
||||
"localRoot": "${workspaceFolder:unstract}/backend",
|
||||
"remoteRoot": "/app"
|
||||
},
|
||||
{
|
||||
"localRoot": "${workspaceFolder:unstract}/unstract",
|
||||
"remoteRoot": "/unstract"
|
||||
},
|
||||
// Uncomment below to use and debug local version of unstract-sdk
|
||||
// {
|
||||
// "localRoot": "${workspaceFolder:unstract-sdk}/src/unstract/sdk",
|
||||
// "remoteRoot": "/unstract-sdk/src/unstract/sdk"
|
||||
// },
|
||||
],
|
||||
"justMyCode": false,
|
||||
"django": true,
|
||||
"presentation": {
|
||||
"group": "docker-debug"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- Set breakpoints in your code
|
||||
- Trigger the code path and the debugger will pause at your breakpoints
|
||||
|
||||
1. View logs in real-time:
|
||||
|
||||
```bash
|
||||
docker compose logs -f [service_name]
|
||||
```
|
||||
|
||||
This workflow eliminates the need to rebuild containers or manually restart services during development, significantly improving productivity.
|
||||
|
||||
## `src` Folder Layout and `gunicorn`
|
||||
|
||||
|
||||
@@ -1,14 +1,162 @@
|
||||
# Refer https://docs.docker.com/compose/how-tos/multiple-compose-files/merge/
|
||||
# This is an example configuration which aims to minimize the number of celery workers
|
||||
# It helps reduce memory usage during development
|
||||
# Minimize celery workers to reduce memory usage of Unstract (aids development)
|
||||
services:
|
||||
worker:
|
||||
command: "-A backend worker --loglevel=info -Q celery,celery_periodic_logs,celery_log_task_queue,celery_api_deployments --autoscale=${WORKER_AUTOSCALE}"
|
||||
worker-file-processing:
|
||||
command: "-A backend.workers.file_processing worker --loglevel=info -Q file_processing,api_file_processing --autoscale=${WORKER_FILE_PROCESSING_AUTOSCALE}"
|
||||
worker-file-processing-callback:
|
||||
command: "-A backend.workers.file_processing_callback worker --loglevel=info -Q file_processing_callback,api_file_processing_callback --autoscale=${WORKER_FILE_PROCESSING_CALLBACK_AUTOSCALE}"
|
||||
|
||||
worker-logging:
|
||||
profiles:
|
||||
- high_memory
|
||||
|
||||
|
||||
# Watch configuration
|
||||
# Refer https://docs.docker.com/compose/how-tos/file-watch/
|
||||
frontend:
|
||||
develop:
|
||||
watch:
|
||||
# Sync the frontend directory with the container
|
||||
- action: sync
|
||||
path: ../frontend/
|
||||
target: /app
|
||||
ignore: node_modules/
|
||||
# Rebuild when dependencies change
|
||||
- action: rebuild
|
||||
path: ../frontend/package-lock.json
|
||||
- action: rebuild
|
||||
path: ../frontend/package.json
|
||||
|
||||
backend:
|
||||
entrypoint: ["bash", "-c"]
|
||||
command: [
|
||||
"source .venv/bin/activate && \
|
||||
uv sync --all-groups && \
|
||||
python /tmp/debugpy --listen 0.0.0.0:5678 .venv/bin/gunicorn \
|
||||
--bind 0.0.0.0:8000 \
|
||||
--workers 2 \
|
||||
--threads 4 \
|
||||
--worker-class gthread \
|
||||
--log-level debug \
|
||||
--timeout 900 \
|
||||
--access-logfile - \
|
||||
--reload --graceful-timeout 5 backend.wsgi:application"
|
||||
]
|
||||
develop:
|
||||
watch:
|
||||
# Sync the backend directory with the container
|
||||
- action: sync+restart
|
||||
path: ../backend/
|
||||
target: /app
|
||||
ignore: [.venv/, __pycache__/, "*.pyc", .pytest_cache/, .mypy_cache/]
|
||||
# Rebuild when dependencies change
|
||||
- action: rebuild
|
||||
path: ../backend/uv.lock
|
||||
## Uncomment below lines to use local version of unstract-sdk
|
||||
## NOTE: Restart the containers on code change though
|
||||
# environment:
|
||||
# - PYTHONPATH=/unstract-sdk/src
|
||||
# volumes:
|
||||
# - <path_to_unstract_sdk>/unstract-sdk:/unstract-sdk
|
||||
|
||||
runner:
|
||||
entrypoint: ["bash", "-c"]
|
||||
command: [
|
||||
"source .venv/bin/activate && \
|
||||
uv sync --all-groups && \
|
||||
python /tmp/debugpy --listen 0.0.0.0:5681 .venv/bin/gunicorn \
|
||||
--bind 0.0.0.0:5002 \
|
||||
--workers 2 \
|
||||
--threads 2 \
|
||||
--worker-class gthread \
|
||||
--log-level debug \
|
||||
--timeout 900 \
|
||||
--access-logfile - \
|
||||
--reload --graceful-timeout 5 unstract.runner:app"
|
||||
]
|
||||
develop:
|
||||
watch:
|
||||
# Sync the runner directory with the container
|
||||
- action: sync+restart
|
||||
path: ../runner/
|
||||
target: /app
|
||||
ignore: [.venv/, __pycache__/, "*.pyc", .pytest_cache/, .mypy_cache/]
|
||||
# Rebuild when dependencies change
|
||||
- action: rebuild
|
||||
path: ../runner/uv.lock
|
||||
|
||||
platform-service:
|
||||
entrypoint: ["bash", "-c"]
|
||||
command: [
|
||||
"source .venv/bin/activate && \
|
||||
uv sync --all-groups && \
|
||||
python /tmp/debugpy --listen 0.0.0.0:5679 .venv/bin/gunicorn \
|
||||
--bind 0.0.0.0:3001 \
|
||||
--workers 2 \
|
||||
--threads 2 \
|
||||
--worker-class gevent \
|
||||
--log-level debug \
|
||||
--timeout 900 \
|
||||
--access-logfile - \
|
||||
--reload --graceful-timeout 5 unstract.platform_service.run:app"
|
||||
]
|
||||
develop:
|
||||
watch:
|
||||
# Sync the platform-service directory with the container
|
||||
- action: sync+restart
|
||||
path: ../platform-service/
|
||||
target: /app
|
||||
ignore: [.venv/, __pycache__/, "*.pyc", .pytest_cache/, .mypy_cache/]
|
||||
# Rebuild when dependencies change
|
||||
- action: rebuild
|
||||
path: ../platform-service/uv.lock
|
||||
|
||||
prompt-service:
|
||||
entrypoint: ["bash", "-c"]
|
||||
command: [
|
||||
"source .venv/bin/activate && \
|
||||
uv sync --all-groups && \
|
||||
python /tmp/debugpy --listen 0.0.0.0:5680 .venv/bin/gunicorn \
|
||||
--bind 0.0.0.0:3003 \
|
||||
--workers 2 \
|
||||
--threads 2 \
|
||||
--worker-class gthread \
|
||||
--log-level debug \
|
||||
--timeout 900 \
|
||||
--access-logfile - \
|
||||
--reload --graceful-timeout 5 unstract.prompt_service.run:app"
|
||||
]
|
||||
develop:
|
||||
watch:
|
||||
# Sync the prompt-service directory with the container
|
||||
- action: sync+restart
|
||||
path: ../prompt-service/
|
||||
target: /app
|
||||
ignore: [.venv/, __pycache__/, "*.pyc", .pytest_cache/, .mypy_cache/]
|
||||
# Rebuild when dependencies change
|
||||
- action: rebuild
|
||||
path: ../prompt-service/uv.lock
|
||||
|
||||
x2text-service:
|
||||
entrypoint: ["bash", "-c"]
|
||||
command: [
|
||||
"source .venv/bin/activate && \
|
||||
uv sync --all-groups && \
|
||||
python /tmp/debugpy --listen 0.0.0.0:5682 .venv/bin/gunicorn \
|
||||
--bind 0.0.0.0:3004 \
|
||||
--workers 2 \
|
||||
--threads 2 \
|
||||
--worker-class gthread \
|
||||
--log-level debug \
|
||||
--timeout 900 \
|
||||
--access-logfile - \
|
||||
--reload --graceful-timeout 5 unstract.x2text_service.run:app"
|
||||
]
|
||||
develop:
|
||||
watch:
|
||||
# Sync the x2text-service directory with the container
|
||||
- action: sync+restart
|
||||
path: ../x2text-service/
|
||||
target: /app
|
||||
ignore: [.venv/, __pycache__/, "*.pyc", .pytest_cache/, .mypy_cache/]
|
||||
# Rebuild when dependencies change
|
||||
- action: rebuild
|
||||
path: ../x2text-service/uv.lock
|
||||
|
||||
@@ -32,7 +32,7 @@ deploy = [
|
||||
"opentelemetry-distro",
|
||||
"opentelemetry-exporter-otlp",
|
||||
]
|
||||
dev = ["poethepoet>=0.33.1"]
|
||||
dev = ["poethepoet>=0.33.1", "debugpy>=1.8.14"]
|
||||
|
||||
# [project.scripts]
|
||||
# platform_service = "./entrypoint.sh"
|
||||
|
||||
19
platform-service/uv.lock
generated
19
platform-service/uv.lock
generated
@@ -500,6 +500,19 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "debugpy"
|
||||
version = "1.8.14"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/bd/75/087fe07d40f490a78782ff3b0a30e3968936854105487decdb33446d4b0e/debugpy-1.8.14.tar.gz", hash = "sha256:7cd287184318416850aa8b60ac90105837bb1e59531898c07569d197d2ed5322", size = 1641444 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/d9/2a/ac2df0eda4898f29c46eb6713a5148e6f8b2b389c8ec9e425a4a1d67bf07/debugpy-1.8.14-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:8899c17920d089cfa23e6005ad9f22582fd86f144b23acb9feeda59e84405b84", size = 2501268 },
|
||||
{ url = "https://files.pythonhosted.org/packages/10/53/0a0cb5d79dd9f7039169f8bf94a144ad3efa52cc519940b3b7dde23bcb89/debugpy-1.8.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6bb5c0dcf80ad5dbc7b7d6eac484e2af34bdacdf81df09b6a3e62792b722826", size = 4221077 },
|
||||
{ url = "https://files.pythonhosted.org/packages/f8/d5/84e01821f362327bf4828728aa31e907a2eca7c78cd7c6ec062780d249f8/debugpy-1.8.14-cp312-cp312-win32.whl", hash = "sha256:281d44d248a0e1791ad0eafdbbd2912ff0de9eec48022a5bfbc332957487ed3f", size = 5255127 },
|
||||
{ url = "https://files.pythonhosted.org/packages/33/16/1ed929d812c758295cac7f9cf3dab5c73439c83d9091f2d91871e648093e/debugpy-1.8.14-cp312-cp312-win_amd64.whl", hash = "sha256:5aa56ef8538893e4502a7d79047fe39b1dae08d9ae257074c6464a7b290b806f", size = 5297249 },
|
||||
{ url = "https://files.pythonhosted.org/packages/97/1a/481f33c37ee3ac8040d3d51fc4c4e4e7e61cb08b8bc8971d6032acc2279f/debugpy-1.8.14-py2.py3-none-any.whl", hash = "sha256:5cd9a579d553b6cb9759a7908a41988ee6280b961f24f63336835d9418216a20", size = 5256230 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "decorator"
|
||||
version = "5.2.1"
|
||||
@@ -3089,6 +3102,7 @@ deploy = [
|
||||
{ name = "opentelemetry-exporter-otlp" },
|
||||
]
|
||||
dev = [
|
||||
{ name = "debugpy" },
|
||||
{ name = "poethepoet" },
|
||||
]
|
||||
test = [
|
||||
@@ -3115,7 +3129,10 @@ deploy = [
|
||||
{ name = "opentelemetry-distro" },
|
||||
{ name = "opentelemetry-exporter-otlp" },
|
||||
]
|
||||
dev = [{ name = "poethepoet", specifier = ">=0.33.1" }]
|
||||
dev = [
|
||||
{ name = "debugpy", specifier = ">=1.8.14" },
|
||||
{ name = "poethepoet", specifier = ">=0.33.1" },
|
||||
]
|
||||
test = [{ name = "pytest", specifier = ">=8.0.1" }]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -42,7 +42,7 @@ deploy = [
|
||||
"opentelemetry-distro",
|
||||
"opentelemetry-exporter-otlp",
|
||||
]
|
||||
dev = ["poethepoet>=0.33.1"]
|
||||
dev = ["poethepoet>=0.33.1", "debugpy>=1.8.14"]
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
|
||||
19
prompt-service/uv.lock
generated
19
prompt-service/uv.lock
generated
@@ -504,6 +504,19 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "debugpy"
|
||||
version = "1.8.14"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/bd/75/087fe07d40f490a78782ff3b0a30e3968936854105487decdb33446d4b0e/debugpy-1.8.14.tar.gz", hash = "sha256:7cd287184318416850aa8b60ac90105837bb1e59531898c07569d197d2ed5322", size = 1641444 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/d9/2a/ac2df0eda4898f29c46eb6713a5148e6f8b2b389c8ec9e425a4a1d67bf07/debugpy-1.8.14-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:8899c17920d089cfa23e6005ad9f22582fd86f144b23acb9feeda59e84405b84", size = 2501268 },
|
||||
{ url = "https://files.pythonhosted.org/packages/10/53/0a0cb5d79dd9f7039169f8bf94a144ad3efa52cc519940b3b7dde23bcb89/debugpy-1.8.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6bb5c0dcf80ad5dbc7b7d6eac484e2af34bdacdf81df09b6a3e62792b722826", size = 4221077 },
|
||||
{ url = "https://files.pythonhosted.org/packages/f8/d5/84e01821f362327bf4828728aa31e907a2eca7c78cd7c6ec062780d249f8/debugpy-1.8.14-cp312-cp312-win32.whl", hash = "sha256:281d44d248a0e1791ad0eafdbbd2912ff0de9eec48022a5bfbc332957487ed3f", size = 5255127 },
|
||||
{ url = "https://files.pythonhosted.org/packages/33/16/1ed929d812c758295cac7f9cf3dab5c73439c83d9091f2d91871e648093e/debugpy-1.8.14-cp312-cp312-win_amd64.whl", hash = "sha256:5aa56ef8538893e4502a7d79047fe39b1dae08d9ae257074c6464a7b290b806f", size = 5297249 },
|
||||
{ url = "https://files.pythonhosted.org/packages/97/1a/481f33c37ee3ac8040d3d51fc4c4e4e7e61cb08b8bc8971d6032acc2279f/debugpy-1.8.14-py2.py3-none-any.whl", hash = "sha256:5cd9a579d553b6cb9759a7908a41988ee6280b961f24f63336835d9418216a20", size = 5256230 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "decorator"
|
||||
version = "5.2.1"
|
||||
@@ -3106,6 +3119,7 @@ deploy = [
|
||||
{ name = "opentelemetry-exporter-otlp" },
|
||||
]
|
||||
dev = [
|
||||
{ name = "debugpy" },
|
||||
{ name = "poethepoet" },
|
||||
]
|
||||
test = [
|
||||
@@ -3138,7 +3152,10 @@ deploy = [
|
||||
{ name = "opentelemetry-distro" },
|
||||
{ name = "opentelemetry-exporter-otlp" },
|
||||
]
|
||||
dev = [{ name = "poethepoet", specifier = ">=0.33.1" }]
|
||||
dev = [
|
||||
{ name = "debugpy", specifier = ">=1.8.14" },
|
||||
{ name = "poethepoet", specifier = ">=0.33.1" },
|
||||
]
|
||||
test = [
|
||||
{ name = "flask-wtf", specifier = "~=1.1" },
|
||||
{ name = "pytest", specifier = "~=8.0.1" },
|
||||
|
||||
@@ -17,7 +17,7 @@ dependencies = [
|
||||
]
|
||||
|
||||
[dependency-groups]
|
||||
dev = ["unstract-core[flask]", "poethepoet>=0.33.1"]
|
||||
dev = ["unstract-core[flask]", "poethepoet>=0.33.1", "debugpy>=1.8.14"]
|
||||
test = [
|
||||
"pytest>=8.2.2",
|
||||
"pytest-mock>=3.14.0",
|
||||
|
||||
15
runner/uv.lock
generated
15
runner/uv.lock
generated
@@ -140,6 +140,19 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/21/c2/e12e95e289e6081a40454199ab213139ef16a528c7c86432de545b05a23a/DataProperty-1.1.0-py3-none-any.whl", hash = "sha256:c61fcb2e2deca35e6d1eb1f251a7f22f0dcde63e80e61f0cc18c19f42abfd25b", size = 27581 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "debugpy"
|
||||
version = "1.8.14"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/bd/75/087fe07d40f490a78782ff3b0a30e3968936854105487decdb33446d4b0e/debugpy-1.8.14.tar.gz", hash = "sha256:7cd287184318416850aa8b60ac90105837bb1e59531898c07569d197d2ed5322", size = 1641444 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/d9/2a/ac2df0eda4898f29c46eb6713a5148e6f8b2b389c8ec9e425a4a1d67bf07/debugpy-1.8.14-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:8899c17920d089cfa23e6005ad9f22582fd86f144b23acb9feeda59e84405b84", size = 2501268 },
|
||||
{ url = "https://files.pythonhosted.org/packages/10/53/0a0cb5d79dd9f7039169f8bf94a144ad3efa52cc519940b3b7dde23bcb89/debugpy-1.8.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6bb5c0dcf80ad5dbc7b7d6eac484e2af34bdacdf81df09b6a3e62792b722826", size = 4221077 },
|
||||
{ url = "https://files.pythonhosted.org/packages/f8/d5/84e01821f362327bf4828728aa31e907a2eca7c78cd7c6ec062780d249f8/debugpy-1.8.14-cp312-cp312-win32.whl", hash = "sha256:281d44d248a0e1791ad0eafdbbd2912ff0de9eec48022a5bfbc332957487ed3f", size = 5255127 },
|
||||
{ url = "https://files.pythonhosted.org/packages/33/16/1ed929d812c758295cac7f9cf3dab5c73439c83d9091f2d91871e648093e/debugpy-1.8.14-cp312-cp312-win_amd64.whl", hash = "sha256:5aa56ef8538893e4502a7d79047fe39b1dae08d9ae257074c6464a7b290b806f", size = 5297249 },
|
||||
{ url = "https://files.pythonhosted.org/packages/97/1a/481f33c37ee3ac8040d3d51fc4c4e4e7e61cb08b8bc8971d6032acc2279f/debugpy-1.8.14-py2.py3-none-any.whl", hash = "sha256:5cd9a579d553b6cb9759a7908a41988ee6280b961f24f63336835d9418216a20", size = 5256230 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "docker"
|
||||
version = "6.1.3"
|
||||
@@ -872,6 +885,7 @@ deploy = [
|
||||
{ name = "opentelemetry-exporter-otlp" },
|
||||
]
|
||||
dev = [
|
||||
{ name = "debugpy" },
|
||||
{ name = "poethepoet" },
|
||||
{ name = "unstract-core", extra = ["flask"] },
|
||||
]
|
||||
@@ -899,6 +913,7 @@ deploy = [
|
||||
{ name = "opentelemetry-exporter-otlp" },
|
||||
]
|
||||
dev = [
|
||||
{ name = "debugpy", specifier = ">=1.8.14" },
|
||||
{ name = "poethepoet", specifier = ">=0.33.1" },
|
||||
{ name = "unstract-core", extras = ["flask"], editable = "../unstract/core" },
|
||||
]
|
||||
|
||||
@@ -23,3 +23,4 @@ deploy = [
|
||||
"opentelemetry-distro",
|
||||
"opentelemetry-exporter-otlp",
|
||||
]
|
||||
dev = ["debugpy>=1.8.14"]
|
||||
|
||||
17
x2text-service/uv.lock
generated
17
x2text-service/uv.lock
generated
@@ -76,6 +76,19 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "debugpy"
|
||||
version = "1.8.14"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/bd/75/087fe07d40f490a78782ff3b0a30e3968936854105487decdb33446d4b0e/debugpy-1.8.14.tar.gz", hash = "sha256:7cd287184318416850aa8b60ac90105837bb1e59531898c07569d197d2ed5322", size = 1641444 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/d9/2a/ac2df0eda4898f29c46eb6713a5148e6f8b2b389c8ec9e425a4a1d67bf07/debugpy-1.8.14-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:8899c17920d089cfa23e6005ad9f22582fd86f144b23acb9feeda59e84405b84", size = 2501268 },
|
||||
{ url = "https://files.pythonhosted.org/packages/10/53/0a0cb5d79dd9f7039169f8bf94a144ad3efa52cc519940b3b7dde23bcb89/debugpy-1.8.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6bb5c0dcf80ad5dbc7b7d6eac484e2af34bdacdf81df09b6a3e62792b722826", size = 4221077 },
|
||||
{ url = "https://files.pythonhosted.org/packages/f8/d5/84e01821f362327bf4828728aa31e907a2eca7c78cd7c6ec062780d249f8/debugpy-1.8.14-cp312-cp312-win32.whl", hash = "sha256:281d44d248a0e1791ad0eafdbbd2912ff0de9eec48022a5bfbc332957487ed3f", size = 5255127 },
|
||||
{ url = "https://files.pythonhosted.org/packages/33/16/1ed929d812c758295cac7f9cf3dab5c73439c83d9091f2d91871e648093e/debugpy-1.8.14-cp312-cp312-win_amd64.whl", hash = "sha256:5aa56ef8538893e4502a7d79047fe39b1dae08d9ae257074c6464a7b290b806f", size = 5297249 },
|
||||
{ url = "https://files.pythonhosted.org/packages/97/1a/481f33c37ee3ac8040d3d51fc4c4e4e7e61cb08b8bc8971d6032acc2279f/debugpy-1.8.14-py2.py3-none-any.whl", hash = "sha256:5cd9a579d553b6cb9759a7908a41988ee6280b961f24f63336835d9418216a20", size = 5256230 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "deprecated"
|
||||
version = "1.2.18"
|
||||
@@ -545,6 +558,9 @@ deploy = [
|
||||
{ name = "opentelemetry-distro" },
|
||||
{ name = "opentelemetry-exporter-otlp" },
|
||||
]
|
||||
dev = [
|
||||
{ name = "debugpy" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
@@ -562,6 +578,7 @@ deploy = [
|
||||
{ name = "opentelemetry-distro" },
|
||||
{ name = "opentelemetry-exporter-otlp" },
|
||||
]
|
||||
dev = [{ name = "debugpy", specifier = ">=1.8.14" }]
|
||||
|
||||
[[package]]
|
||||
name = "urllib3"
|
||||
|
||||
Reference in New Issue
Block a user