diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 457296b1..9650a76b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,7 +17,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' - name: Install build tools run: pip install build twine diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 805aa7c7..3b3c4d06 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -25,7 +25,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.12" - name: Install dependencies run: pip install -r requirements-dev.txt @@ -42,7 +42,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.12" - name: Install dependencies run: pip install -r requirements-dev.txt diff --git a/Makefile b/Makefile index f618defc..d61798b0 100644 --- a/Makefile +++ b/Makefile @@ -114,8 +114,8 @@ format-python: # Update requirements files with exact pins from pyproject.toml update-requirements: @echo "Updating requirements files from pyproject.toml..." - pip-compile --resolver=backtracking pyproject.toml --output-file requirements.txt - pip-compile --resolver=backtracking --extra dev pyproject.toml --output-file requirements-dev.txt + pip-compile --resolver=backtracking --upgrade pyproject.toml --output-file requirements.txt + pip-compile --resolver=backtracking --upgrade --extra dev pyproject.toml --output-file requirements-dev.txt @echo "Requirements updated! Review changes before committing." # Help target diff --git a/demo-ui/package-lock.json b/demo-ui/package-lock.json index d9a98c23..434fce8b 100644 --- a/demo-ui/package-lock.json +++ b/demo-ui/package-lock.json @@ -21,7 +21,7 @@ "@tanstack/react-query": "^5.17.0", "@tanstack/react-query-devtools": "^5.17.0", "@tanstack/react-table": "^8.21.3", - "axios": "^1.6.5", + "axios": "^1.13.5", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "diff": "^8.0.2", @@ -2782,9 +2782,9 @@ } }, "node_modules/@remix-run/router": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz", - "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", + "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", "license": "MIT", "engines": { "node": ">=14.0.0" @@ -2965,9 +2965,9 @@ "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", - "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", + "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", "cpu": [ "arm" ], @@ -2979,9 +2979,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", - "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", + "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", "cpu": [ "arm64" ], @@ -2993,9 +2993,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", - "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", + "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", "cpu": [ "arm64" ], @@ -3007,9 +3007,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", - "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", + "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", "cpu": [ "x64" ], @@ -3021,9 +3021,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", - "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", + "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", "cpu": [ "arm64" ], @@ -3035,9 +3035,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", - "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", + "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", "cpu": [ "x64" ], @@ -3049,9 +3049,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", - "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", + "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", "cpu": [ "arm" ], @@ -3063,9 +3063,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", - "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", + "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", "cpu": [ "arm" ], @@ -3077,9 +3077,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", - "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", + "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", "cpu": [ "arm64" ], @@ -3091,9 +3091,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", - "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", + "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", "cpu": [ "arm64" ], @@ -3105,9 +3105,23 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", - "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", + "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", + "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", "cpu": [ "loong64" ], @@ -3119,9 +3133,23 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", - "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", + "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", + "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", "cpu": [ "ppc64" ], @@ -3133,9 +3161,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", - "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", + "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", "cpu": [ "riscv64" ], @@ -3147,9 +3175,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", - "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", + "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", "cpu": [ "riscv64" ], @@ -3161,9 +3189,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", - "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", + "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", "cpu": [ "s390x" ], @@ -3175,9 +3203,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", - "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", + "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", "cpu": [ "x64" ], @@ -3189,9 +3217,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", - "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", + "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", "cpu": [ "x64" ], @@ -3202,10 +3230,24 @@ "linux" ] }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", + "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", - "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", + "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", "cpu": [ "arm64" ], @@ -3217,9 +3259,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", - "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", + "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", "cpu": [ "arm64" ], @@ -3231,9 +3273,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", - "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", + "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", "cpu": [ "ia32" ], @@ -3245,9 +3287,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", - "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", + "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", "cpu": [ "x64" ], @@ -3259,9 +3301,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", - "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", + "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", "cpu": [ "x64" ], @@ -4090,32 +4132,6 @@ "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.7.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", @@ -4749,22 +4765,25 @@ } }, "node_modules/axios": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", - "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz", + "integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", "proxy-from-env": "^1.1.0" } }, "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } }, "node_modules/baseline-browser-mapping": { "version": "2.8.18", @@ -4787,14 +4806,16 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/braces": { @@ -5239,13 +5260,6 @@ "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", "license": "MIT" }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -6492,9 +6506,9 @@ } }, "node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -8329,16 +8343,19 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "*" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/moment": { @@ -10228,9 +10245,9 @@ "license": "MIT" }, "node_modules/rollup": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", - "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", + "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", "dev": true, "license": "MIT", "dependencies": { @@ -10244,28 +10261,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.52.5", - "@rollup/rollup-android-arm64": "4.52.5", - "@rollup/rollup-darwin-arm64": "4.52.5", - "@rollup/rollup-darwin-x64": "4.52.5", - "@rollup/rollup-freebsd-arm64": "4.52.5", - "@rollup/rollup-freebsd-x64": "4.52.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", - "@rollup/rollup-linux-arm-musleabihf": "4.52.5", - "@rollup/rollup-linux-arm64-gnu": "4.52.5", - "@rollup/rollup-linux-arm64-musl": "4.52.5", - "@rollup/rollup-linux-loong64-gnu": "4.52.5", - "@rollup/rollup-linux-ppc64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-musl": "4.52.5", - "@rollup/rollup-linux-s390x-gnu": "4.52.5", - "@rollup/rollup-linux-x64-gnu": "4.52.5", - "@rollup/rollup-linux-x64-musl": "4.52.5", - "@rollup/rollup-openharmony-arm64": "4.52.5", - "@rollup/rollup-win32-arm64-msvc": "4.52.5", - "@rollup/rollup-win32-ia32-msvc": "4.52.5", - "@rollup/rollup-win32-x64-gnu": "4.52.5", - "@rollup/rollup-win32-x64-msvc": "4.52.5", + "@rollup/rollup-android-arm-eabi": "4.59.0", + "@rollup/rollup-android-arm64": "4.59.0", + "@rollup/rollup-darwin-arm64": "4.59.0", + "@rollup/rollup-darwin-x64": "4.59.0", + "@rollup/rollup-freebsd-arm64": "4.59.0", + "@rollup/rollup-freebsd-x64": "4.59.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", + "@rollup/rollup-linux-arm-musleabihf": "4.59.0", + "@rollup/rollup-linux-arm64-gnu": "4.59.0", + "@rollup/rollup-linux-arm64-musl": "4.59.0", + "@rollup/rollup-linux-loong64-gnu": "4.59.0", + "@rollup/rollup-linux-loong64-musl": "4.59.0", + "@rollup/rollup-linux-ppc64-gnu": "4.59.0", + "@rollup/rollup-linux-ppc64-musl": "4.59.0", + "@rollup/rollup-linux-riscv64-gnu": "4.59.0", + "@rollup/rollup-linux-riscv64-musl": "4.59.0", + "@rollup/rollup-linux-s390x-gnu": "4.59.0", + "@rollup/rollup-linux-x64-gnu": "4.59.0", + "@rollup/rollup-linux-x64-musl": "4.59.0", + "@rollup/rollup-openbsd-x64": "4.59.0", + "@rollup/rollup-openharmony-arm64": "4.59.0", + "@rollup/rollup-win32-arm64-msvc": "4.59.0", + "@rollup/rollup-win32-ia32-msvc": "4.59.0", + "@rollup/rollup-win32-x64-gnu": "4.59.0", + "@rollup/rollup-win32-x64-msvc": "4.59.0", "fsevents": "~2.3.2" } }, diff --git a/demo-ui/package.json b/demo-ui/package.json index 3bd42c7c..c4e36fc4 100644 --- a/demo-ui/package.json +++ b/demo-ui/package.json @@ -17,7 +17,7 @@ "@tanstack/react-query": "^5.17.0", "@tanstack/react-query-devtools": "^5.17.0", "@tanstack/react-table": "^8.21.3", - "axios": "^1.6.5", + "axios": "^1.13.5", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "diff": "^8.0.2", @@ -33,6 +33,11 @@ "tailwindcss-animate": "^1.0.7", "zod": "^3.25.76" }, + "overrides": { + "@remix-run/router": ">=1.23.2", + "rollup": ">=4.59.0", + "minimatch": ">=9.0.7" + }, "scripts": { "dev": "vite", "tsc": "tsc -p tsconfig.app.json --noEmit --pretty", diff --git a/pyproject.toml b/pyproject.toml index aa7f7090..10087163 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "julee" -version = "0.1.10" +version = "0.1.11" description = "Julee - Clean architecture for accountable and transparent digital supply chains" readme = "README.md" requires-python = ">=3.11" @@ -27,7 +27,7 @@ dependencies = [ # Core Web Framework "fastapi>=0.100.0", "uvicorn>=0.20.0", - "python-multipart", + "python-multipart>=0.0.22", "fastapi-pagination>=0.12.0", # Data Validation and Serialization "pydantic>=2.0.0", diff --git a/requirements-dev.txt b/requirements-dev.txt index c9b0a750..f9d27fed 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # pip-compile --extra=dev --output-file=requirements-dev.txt pyproject.toml @@ -10,9 +10,9 @@ annotated-doc==0.0.4 # via fastapi annotated-types==0.7.0 # via pydantic -anthropic==0.75.0 +anthropic==0.84.0 # via julee (pyproject.toml) -anyio==4.12.0 +anyio==4.12.1 # via # anthropic # httpx @@ -27,15 +27,15 @@ attrs==25.4.0 # via # jsonschema # referencing -babel==2.17.0 +babel==2.18.0 # via sphinx -bandit==1.9.2 +bandit==1.9.4 # via julee (pyproject.toml) -black==25.12.0 +black==26.1.0 # via julee (pyproject.toml) -build==1.3.0 +build==1.4.0 # via pip-tools -certifi==2025.11.12 +certifi==2026.2.25 # via # httpcore # httpx @@ -53,7 +53,7 @@ click==8.3.1 # julee (pyproject.toml) # pip-tools # uvicorn -coverage[toml]==7.13.0 +coverage[toml]==7.13.4 # via pytest-cov distlib==0.4.0 # via virtualenv @@ -61,22 +61,24 @@ distro==1.9.0 # via anthropic docstring-parser==0.17.0 # via anthropic -docutils==0.22.3 +docutils==0.22.4 # via sphinx execnet==2.1.2 # via pytest-xdist factory-boy==3.3.3 # via julee (pyproject.toml) -faker==38.2.0 +faker==40.5.1 # via factory-boy -fastapi==0.124.2 +fastapi==0.135.1 # via # fastapi-pagination # julee (pyproject.toml) -fastapi-pagination==0.15.2 +fastapi-pagination==0.15.10 # via julee (pyproject.toml) -filelock==3.20.0 - # via virtualenv +filelock==3.25.0 + # via + # python-discovery + # virtualenv h11==0.16.0 # via # httpcore @@ -85,16 +87,16 @@ httpcore==1.0.9 # via httpx httpx==0.28.1 # via anthropic -hypothesis==6.148.7 +hypothesis==6.151.9 # via julee (pyproject.toml) -identify==2.6.15 +identify==2.6.17 # via pre-commit idna==3.11 # via # anyio # httpx # requests -imagesize==1.4.1 +imagesize==2.0.0 # via sphinx iniconfig==2.3.0 # via pytest @@ -102,15 +104,15 @@ jinja2==3.1.6 # via # julee (pyproject.toml) # sphinx -jiter==0.12.0 +jiter==0.13.0 # via anthropic jsonpointer==3.0.0 # via julee (pyproject.toml) -jsonschema==4.25.1 +jsonschema==4.26.0 # via julee (pyproject.toml) jsonschema-specifications==2025.9.1 # via jsonschema -librt==0.7.3 +librt==0.8.1 # via mypy markdown-it-py==4.0.0 # via rich @@ -122,41 +124,43 @@ minio==7.2.20 # via julee (pyproject.toml) multihash==0.1.1 # via julee (pyproject.toml) -mypy==1.19.0 +mypy==1.19.1 # via julee (pyproject.toml) mypy-extensions==1.1.0 # via # black # mypy -nexus-rpc==1.2.0 +nexus-rpc==1.3.0 # via temporalio -nodeenv==1.9.1 +nodeenv==1.10.0 # via pre-commit -packaging==25.0 +packaging==26.0 # via # black # build # pytest # sphinx -pathspec==0.12.1 + # wheel +pathspec==1.0.4 # via # black # mypy -pip-tools==7.5.2 +pip-tools==7.5.3 # via julee (pyproject.toml) -platformdirs==4.5.1 +platformdirs==4.9.2 # via # black + # python-discovery # virtualenv pluggy==1.6.0 # via # pytest # pytest-cov -pre-commit==4.5.0 +pre-commit==4.5.1 # via julee (pyproject.toml) -protobuf==6.33.2 +protobuf==6.33.5 # via temporalio -pycparser==2.23 +pycparser==3.0 # via cffi pycryptodome==3.23.0 # via minio @@ -190,11 +194,13 @@ pytest-cov==7.0.0 # via julee (pyproject.toml) pytest-xdist==3.8.0 # via julee (pyproject.toml) +python-discovery==1.1.0 + # via virtualenv python-magic==0.4.27 # via julee (pyproject.toml) -python-multipart==0.0.20 +python-multipart==0.0.22 # via julee (pyproject.toml) -pytokens==0.3.0 +pytokens==0.4.1 # via black pyyaml==6.0.3 # via @@ -208,7 +214,7 @@ referencing==0.37.0 # types-jsonschema requests==2.32.5 # via sphinx -rich==14.2.0 +rich==14.3.3 # via bandit roman-numerals==4.1.0 # via sphinx @@ -216,7 +222,7 @@ rpds-py==0.30.0 # via # jsonschema # referencing -ruff==0.14.8 +ruff==0.15.4 # via julee (pyproject.toml) six==1.17.0 # via julee (pyproject.toml) @@ -226,7 +232,7 @@ snowballstemmer==3.0.1 # via sphinx sortedcontainers==2.4.0 # via hypothesis -sphinx==9.0.4 +sphinx==9.1.0 # via julee (pyproject.toml) sphinxcontrib-applehelp==2.0.0 # via sphinx @@ -240,17 +246,17 @@ sphinxcontrib-qthelp==2.0.0 # via sphinx sphinxcontrib-serializinghtml==2.0.0 # via sphinx -starlette==0.50.0 +starlette==0.52.1 # via fastapi -stevedore==5.6.0 +stevedore==5.7.0 # via bandit -temporalio[pydantic]==1.20.0 +temporalio[pydantic]==1.23.0 # via julee (pyproject.toml) -types-jsonschema==4.25.1.20251009 +types-jsonschema==4.26.0.20260202 # via julee (pyproject.toml) -types-protobuf==6.32.1.20251210 +types-protobuf==6.32.1.20260221 # via temporalio -types-python-dateutil==2.9.0.20251115 +types-python-dateutil==2.9.0.20260302 # via julee (pyproject.toml) types-pyyaml==6.0.12.20250915 # via julee (pyproject.toml) @@ -271,18 +277,18 @@ typing-extensions==4.15.0 # temporalio # typing-inspection typing-inspection==0.4.2 - # via pydantic -tzdata==2025.2 - # via faker -urllib3==2.6.1 + # via + # fastapi + # pydantic +urllib3==2.6.3 # via # minio # requests -uvicorn==0.38.0 +uvicorn==0.41.0 # via julee (pyproject.toml) -virtualenv==20.35.4 +virtualenv==21.1.0 # via pre-commit -wheel==0.45.1 +wheel==0.46.3 # via pip-tools # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements.txt b/requirements.txt index 59c452bc..c50dfe83 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # pip-compile --output-file=requirements.txt pyproject.toml @@ -8,9 +8,9 @@ annotated-doc==0.0.4 # via fastapi annotated-types==0.7.0 # via pydantic -anthropic==0.75.0 +anthropic==0.84.0 # via julee (pyproject.toml) -anyio==4.12.0 +anyio==4.12.1 # via # anthropic # httpx @@ -23,7 +23,7 @@ attrs==25.4.0 # via # jsonschema # referencing -certifi==2025.11.12 +certifi==2026.2.25 # via # httpcore # httpx @@ -38,11 +38,11 @@ distro==1.9.0 # via anthropic docstring-parser==0.17.0 # via anthropic -fastapi==0.124.2 +fastapi==0.135.1 # via # fastapi-pagination # julee (pyproject.toml) -fastapi-pagination==0.15.2 +fastapi-pagination==0.15.10 # via julee (pyproject.toml) h11==0.16.0 # via @@ -58,11 +58,11 @@ idna==3.11 # httpx jinja2==3.1.6 # via julee (pyproject.toml) -jiter==0.12.0 +jiter==0.13.0 # via anthropic jsonpointer==3.0.0 # via julee (pyproject.toml) -jsonschema==4.25.1 +jsonschema==4.26.0 # via julee (pyproject.toml) jsonschema-specifications==2025.9.1 # via jsonschema @@ -72,11 +72,11 @@ minio==7.2.20 # via julee (pyproject.toml) multihash==0.1.1 # via julee (pyproject.toml) -nexus-rpc==1.2.0 +nexus-rpc==1.3.0 # via temporalio -protobuf==6.33.2 +protobuf==6.33.5 # via temporalio -pycparser==2.23 +pycparser==3.0 # via cffi pycryptodome==3.23.0 # via minio @@ -91,7 +91,7 @@ pydantic-core==2.41.5 # via pydantic python-magic==0.4.27 # via julee (pyproject.toml) -python-multipart==0.0.20 +python-multipart==0.0.22 # via julee (pyproject.toml) pyyaml==6.0.3 # via julee (pyproject.toml) @@ -107,11 +107,11 @@ six==1.17.0 # via julee (pyproject.toml) sniffio==1.3.1 # via anthropic -starlette==0.50.0 +starlette==0.52.1 # via fastapi -temporalio[pydantic]==1.20.0 +temporalio[pydantic]==1.23.0 # via julee (pyproject.toml) -types-protobuf==6.32.1.20251210 +types-protobuf==6.32.1.20260221 # via temporalio typing-extensions==4.15.0 # via @@ -128,8 +128,10 @@ typing-extensions==4.15.0 # temporalio # typing-inspection typing-inspection==0.4.2 - # via pydantic -urllib3==2.6.1 + # via + # fastapi + # pydantic +urllib3==2.6.3 # via minio -uvicorn==0.38.0 +uvicorn==0.41.0 # via julee (pyproject.toml) diff --git a/src/julee/docs/sphinx_hcd/tests/parsers/test_ast.py b/src/julee/docs/sphinx_hcd/tests/parsers/test_ast.py index 0174a98d..2701707a 100644 --- a/src/julee/docs/sphinx_hcd/tests/parsers/test_ast.py +++ b/src/julee/docs/sphinx_hcd/tests/parsers/test_ast.py @@ -16,13 +16,11 @@ class TestParsePythonClasses: def test_parse_single_class(self, tmp_path: Path) -> None: """Test parsing a file with a single class.""" py_file = tmp_path / "document.py" - py_file.write_text( - ''' + py_file.write_text(''' class Document: """A document entity.""" pass -''' - ) +''') classes = parse_python_classes(tmp_path) assert len(classes) == 1 @@ -33,8 +31,7 @@ class Document: def test_parse_multiple_classes(self, tmp_path: Path) -> None: """Test parsing a file with multiple classes.""" py_file = tmp_path / "models.py" - py_file.write_text( - ''' + py_file.write_text(''' class Document: """A document entity.""" pass @@ -42,8 +39,7 @@ class Document: class Term: """A term in a vocabulary.""" pass -''' - ) +''') classes = parse_python_classes(tmp_path) assert len(classes) == 2 @@ -53,12 +49,10 @@ class Term: def test_parse_class_no_docstring(self, tmp_path: Path) -> None: """Test parsing a class without a docstring.""" py_file = tmp_path / "simple.py" - py_file.write_text( - """ + py_file.write_text(""" class SimpleClass: pass -""" - ) +""") classes = parse_python_classes(tmp_path) assert len(classes) == 1 @@ -70,8 +64,7 @@ def test_parse_multiline_docstring_extracts_first_line( ) -> None: """Test that only the first line of docstring is extracted.""" py_file = tmp_path / "complex.py" - py_file.write_text( - ''' + py_file.write_text(''' class ComplexClass: """First line of docstring. @@ -79,8 +72,7 @@ class ComplexClass: With multiple lines. """ pass -''' - ) +''') classes = parse_python_classes(tmp_path) assert len(classes) == 1 @@ -104,13 +96,11 @@ def test_nonexistent_directory(self) -> None: def test_sorted_by_name(self, tmp_path: Path) -> None: """Test classes are sorted by name.""" py_file = tmp_path / "classes.py" - py_file.write_text( - """ + py_file.write_text(""" class Zebra: pass class Apple: pass class Mango: pass -""" - ) +""") classes = parse_python_classes(tmp_path) names = [c.name for c in classes] @@ -133,16 +123,14 @@ class TestParseModuleDocstring: def test_parse_module_with_docstring(self, tmp_path: Path) -> None: """Test parsing a module with a docstring.""" py_file = tmp_path / "module.py" - py_file.write_text( - '''"""Module docstring. + py_file.write_text('''"""Module docstring. More details about the module. """ class SomeClass: pass -''' - ) +''') first_line, full = parse_module_docstring(py_file) assert first_line == "Module docstring." @@ -151,12 +139,10 @@ class SomeClass: def test_parse_module_no_docstring(self, tmp_path: Path) -> None: """Test parsing a module without a docstring.""" py_file = tmp_path / "no_doc.py" - py_file.write_text( - """ + py_file.write_text(""" class SomeClass: pass -""" - ) +""") first_line, full = parse_module_docstring(py_file) assert first_line is None @@ -186,31 +172,25 @@ def test_parse_full_context(self, tmp_path: Path) -> None: (context_dir / "__init__.py").write_text('"""Vocabulary management."""') # Entity - (context_dir / "domain" / "models" / "vocabulary.py").write_text( - ''' + (context_dir / "domain" / "models" / "vocabulary.py").write_text(''' class Vocabulary: """A vocabulary catalog.""" pass -''' - ) +''') # Use case - (context_dir / "use_cases" / "create.py").write_text( - ''' + (context_dir / "use_cases" / "create.py").write_text(''' class CreateVocabulary: """Create a new vocabulary.""" pass -''' - ) +''') # Repository protocol - (context_dir / "domain" / "repositories" / "vocabulary.py").write_text( - ''' + (context_dir / "domain" / "repositories" / "vocabulary.py").write_text(''' class VocabularyRepository: """Repository for vocabularies.""" pass -''' - ) +''') info = parse_bounded_context(context_dir) assert info is not None diff --git a/src/julee/docs/sphinx_hcd/tests/parsers/test_gherkin.py b/src/julee/docs/sphinx_hcd/tests/parsers/test_gherkin.py index db5b5da8..1ab5dd2e 100644 --- a/src/julee/docs/sphinx_hcd/tests/parsers/test_gherkin.py +++ b/src/julee/docs/sphinx_hcd/tests/parsers/test_gherkin.py @@ -142,8 +142,7 @@ def test_parse_feature_file_success(self, temp_project: Path) -> None: """Test parsing a feature file.""" feature_dir = temp_project / "tests" / "e2e" / "my-app" / "features" feature_file = feature_dir / "submit.feature" - feature_file.write_text( - """Feature: Submit Form + feature_file.write_text("""Feature: Submit Form As a User I want to submit a form @@ -153,8 +152,7 @@ def test_parse_feature_file_success(self, temp_project: Path) -> None: Given I fill the form When I submit Then it succeeds -""" - ) +""") story = parse_feature_file(feature_file, temp_project) diff --git a/src/julee/docs/sphinx_hcd/tests/parsers/test_yaml.py b/src/julee/docs/sphinx_hcd/tests/parsers/test_yaml.py index e366cdba..a7c36cf0 100644 --- a/src/julee/docs/sphinx_hcd/tests/parsers/test_yaml.py +++ b/src/julee/docs/sphinx_hcd/tests/parsers/test_yaml.py @@ -73,16 +73,14 @@ def test_parse_complete_manifest(self, temp_project: Path) -> None: app_dir = temp_project / "apps" / "staff-portal" app_dir.mkdir(parents=True) manifest = app_dir / "app.yaml" - manifest.write_text( - """ + manifest.write_text(""" name: Staff Portal type: staff status: live description: Portal for staff members accelerators: - user-auth -""" - ) +""") app = parse_app_manifest(manifest) @@ -156,32 +154,26 @@ def temp_project(self, tmp_path: Path) -> Path: # Create app1 app1_dir = apps_dir / "staff-portal" app1_dir.mkdir() - (app1_dir / "app.yaml").write_text( - """ + (app1_dir / "app.yaml").write_text(""" name: Staff Portal type: staff -""" - ) +""") # Create app2 app2_dir = apps_dir / "customer-portal" app2_dir.mkdir() - (app2_dir / "app.yaml").write_text( - """ + (app2_dir / "app.yaml").write_text(""" name: Customer Portal type: external -""" - ) +""") # Create app3 (member tool) app3_dir = apps_dir / "member-tool" app3_dir.mkdir() - (app3_dir / "app.yaml").write_text( - """ + (app3_dir / "app.yaml").write_text(""" name: Member Tool type: member-tool -""" - ) +""") return tmp_path @@ -269,8 +261,7 @@ def test_parse_complete_manifest(self, temp_project: Path) -> None: int_dir = temp_project / "integrations" / "pilot_data_collection" int_dir.mkdir(parents=True) manifest = int_dir / "integration.yaml" - manifest.write_text( - """ + manifest.write_text(""" slug: pilot-data name: Pilot Data Collection description: Collects pilot data from external systems @@ -279,8 +270,7 @@ def test_parse_complete_manifest(self, temp_project: Path) -> None: - name: Pilot API url: https://pilot.example.com - name: Data Lake -""" - ) +""") integration = parse_integration_manifest(manifest) @@ -382,32 +372,26 @@ def temp_project(self, tmp_path: Path) -> Path: # Create inbound integration int1_dir = integrations_dir / "pilot_data" int1_dir.mkdir() - (int1_dir / "integration.yaml").write_text( - """ + (int1_dir / "integration.yaml").write_text(""" name: Pilot Data direction: inbound -""" - ) +""") # Create outbound integration int2_dir = integrations_dir / "analytics_export" int2_dir.mkdir() - (int2_dir / "integration.yaml").write_text( - """ + (int2_dir / "integration.yaml").write_text(""" name: Analytics Export direction: outbound -""" - ) +""") # Create bidirectional integration int3_dir = integrations_dir / "data_sync" int3_dir.mkdir() - (int3_dir / "integration.yaml").write_text( - """ + (int3_dir / "integration.yaml").write_text(""" name: Data Sync direction: bidirectional -""" - ) +""") return tmp_path