From 714b323ba9bc7805c9eea1309e4c8b9bdb4e1d15 Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Thu, 11 Jul 2024 17:58:14 +0200 Subject: [PATCH 01/13] build: Update anomalib and smp to point to pypi releases, update torch to avoid using urls --- poetry.lock | 331 ++++++------------------------------------------- pyproject.toml | 13 +- 2 files changed, 43 insertions(+), 301 deletions(-) diff --git a/poetry.lock b/poetry.lock index fa4da03e..bc133150 100644 --- a/poetry.lock +++ b/poetry.lock @@ -186,37 +186,27 @@ six = ">=1.5" test = ["flake8 (==3.7.9)", "mock (==2.0.0)", "pylint (==1.9.3)"] [[package]] -name = "anomalib" -version = "0.7.0+obx.1.3.3" -description = "anomalib - Anomaly Detection Library" +name = "anomalib-orobix" +version = "0.7.0.dev134" +description = "Orobix anomalib fork" optional = false -python-versions = ">=3.7" -files = [] -develop = false +python-versions = "<3.11,>=3.9" +files = [ + {file = "anomalib_orobix-0.7.0.dev134-py3-none-any.whl", hash = "sha256:b01c4145feada8d951b9fd12b6b2de873e0bda25dc640961428b0661bc49a149"}, + {file = "anomalib_orobix-0.7.0.dev134.tar.gz", hash = "sha256:dcfc0896938dbcb9dd185780421111ef8d200ef25c89d92fa883a076654430d3"}, +] [package.dependencies] -einops = "==0.6.*" -freia = "==0.2.*" +einops = ">=0.6,<0.7" +freia = ">=0.2,<0.3" gradio = "3.0.2" imgaug = "0.4.0" jsonargparse = {version = ">=4.3.0,<4.4.0", extras = ["signatures"]} kornia = "0.6.5" line-profiler = "3.5.1" -omegaconf = "==2.3.*" +omegaconf = ">=2.3,<2.4" wandb = "0.12.17" -[package.extras] -full = ["GitPython", "comet-ml (>=3.31.7)", "defusedxml (==0.7.1)", "gitpython", "gradio (>=2.9.4)", "ipykernel", "ipykernel", "ipywidgets", "networkx (>=2.5,<3.0)", "nncf (>=2.1.0)", "notebook", "onnx (>=1.10.1)", "openvino-dev (>=2022.3.0)", "requests (>=2.26.0)", "tensorboard", "wandb (==0.12.17)"] -loggers = ["GitPython", "comet-ml (>=3.31.7)", "gradio (>=2.9.4)", "ipykernel", "tensorboard", "wandb (==0.12.17)"] -notebooks = ["gitpython", "ipykernel", "ipywidgets", "notebook"] -openvino = ["defusedxml (==0.7.1)", "networkx (>=2.5,<3.0)", "nncf (>=2.1.0)", "onnx (>=1.10.1)", "openvino-dev (>=2022.3.0)", "requests (>=2.26.0)"] - -[package.source] -type = "git" -url = "https://github.com/orobix/anomalib.git" -reference = "v0.7.0+obx.1.3.3" -resolved_reference = "02953d367168659ad9324ca03a9fa9c63aa69dbe" - [[package]] name = "antlr4-python3-runtime" version = "4.9.3" @@ -2628,7 +2618,7 @@ files = [ cssselect = ["cssselect (>=0.7)"] html5 = ["html5lib"] htmlsoup = ["BeautifulSoup4"] -source = ["Cython (>=3.0.8)"] +source = ["Cython (>=3.0.7)"] [[package]] name = "mako" @@ -3430,115 +3420,6 @@ files = [ {file = "numpy-1.26.3.tar.gz", hash = "sha256:697df43e2b6310ecc9d95f05d5ef20eacc09c7c4ecc9da3f235d39e71b7da1e4"}, ] -[[package]] -name = "nvidia-cublas-cu12" -version = "12.1.3.1" -description = "CUBLAS native runtime libraries" -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:ee53ccca76a6fc08fb9701aa95b6ceb242cdaab118c3bb152af4e579af792728"}, - {file = "nvidia_cublas_cu12-12.1.3.1-py3-none-win_amd64.whl", hash = "sha256:2b964d60e8cf11b5e1073d179d85fa340c120e99b3067558f3cf98dd69d02906"}, -] - -[[package]] -name = "nvidia-cuda-cupti-cu12" -version = "12.1.105" -description = "CUDA profiling tools runtime libs." -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:e54fde3983165c624cb79254ae9818a456eb6e87a7fd4d56a2352c24ee542d7e"}, - {file = "nvidia_cuda_cupti_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:bea8236d13a0ac7190bd2919c3e8e6ce1e402104276e6f9694479e48bb0eb2a4"}, -] - -[[package]] -name = "nvidia-cuda-nvrtc-cu12" -version = "12.1.105" -description = "NVRTC native runtime libraries" -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:339b385f50c309763ca65456ec75e17bbefcbbf2893f462cb8b90584cd27a1c2"}, - {file = "nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:0a98a522d9ff138b96c010a65e145dc1b4850e9ecb75a0172371793752fd46ed"}, -] - -[[package]] -name = "nvidia-cuda-runtime-cu12" -version = "12.1.105" -description = "CUDA Runtime native Libraries" -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:6e258468ddf5796e25f1dc591a31029fa317d97a0a94ed93468fc86301d61e40"}, - {file = "nvidia_cuda_runtime_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:dfb46ef84d73fababab44cf03e3b83f80700d27ca300e537f85f636fac474344"}, -] - -[[package]] -name = "nvidia-cudnn-cu12" -version = "8.9.2.26" -description = "cuDNN runtime libraries" -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl", hash = "sha256:5ccb288774fdfb07a7e7025ffec286971c06d8d7b4fb162525334616d7629ff9"}, -] - -[package.dependencies] -nvidia-cublas-cu12 = "*" - -[[package]] -name = "nvidia-cufft-cu12" -version = "11.0.2.54" -description = "CUFFT native runtime libraries" -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl", hash = "sha256:794e3948a1aa71fd817c3775866943936774d1c14e7628c74f6f7417224cdf56"}, - {file = "nvidia_cufft_cu12-11.0.2.54-py3-none-win_amd64.whl", hash = "sha256:d9ac353f78ff89951da4af698f80870b1534ed69993f10a4cf1d96f21357e253"}, -] - -[[package]] -name = "nvidia-curand-cu12" -version = "10.3.2.106" -description = "CURAND native runtime libraries" -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl", hash = "sha256:9d264c5036dde4e64f1de8c50ae753237c12e0b1348738169cd0f8a536c0e1e0"}, - {file = "nvidia_curand_cu12-10.3.2.106-py3-none-win_amd64.whl", hash = "sha256:75b6b0c574c0037839121317e17fd01f8a69fd2ef8e25853d826fec30bdba74a"}, -] - -[[package]] -name = "nvidia-cusolver-cu12" -version = "11.4.5.107" -description = "CUDA solver native runtime libraries" -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl", hash = "sha256:8a7ec542f0412294b15072fa7dab71d31334014a69f953004ea7a118206fe0dd"}, - {file = "nvidia_cusolver_cu12-11.4.5.107-py3-none-win_amd64.whl", hash = "sha256:74e0c3a24c78612192a74fcd90dd117f1cf21dea4822e66d89e8ea80e3cd2da5"}, -] - -[package.dependencies] -nvidia-cublas-cu12 = "*" -nvidia-cusparse-cu12 = "*" -nvidia-nvjitlink-cu12 = "*" - -[[package]] -name = "nvidia-cusparse-cu12" -version = "12.1.0.106" -description = "CUSPARSE native runtime libraries" -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl", hash = "sha256:f3b50f42cf363f86ab21f720998517a659a48131e8d538dc02f8768237bd884c"}, - {file = "nvidia_cusparse_cu12-12.1.0.106-py3-none-win_amd64.whl", hash = "sha256:b798237e81b9719373e8fae8d4f091b70a0cf09d9d85c95a557e11df2d8e9a5a"}, -] - -[package.dependencies] -nvidia-nvjitlink-cu12 = "*" - [[package]] name = "nvidia-ml-py" version = "11.515.75" @@ -3550,38 +3431,6 @@ files = [ {file = "nvidia_ml_py-11.515.75-py3-none-any.whl", hash = "sha256:5bf5f5240f5a242689c1d1129135a0bd79c8b93d2a282c7229fe32ab63e7999b"}, ] -[[package]] -name = "nvidia-nccl-cu12" -version = "2.18.1" -description = "NVIDIA Collective Communication Library (NCCL) Runtime" -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_nccl_cu12-2.18.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:1a6c4acefcbebfa6de320f412bf7866de856e786e0462326ba1bac40de0b5e71"}, -] - -[[package]] -name = "nvidia-nvjitlink-cu12" -version = "12.3.101" -description = "Nvidia JIT LTO Library" -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_nvjitlink_cu12-12.3.101-py3-none-manylinux1_x86_64.whl", hash = "sha256:64335a8088e2b9d196ae8665430bc6a2b7e6ef2eb877a9c735c804bd4ff6467c"}, - {file = "nvidia_nvjitlink_cu12-12.3.101-py3-none-win_amd64.whl", hash = "sha256:1b2e317e437433753530792f13eece58f0aec21a2b05903be7bffe58a606cbd1"}, -] - -[[package]] -name = "nvidia-nvtx-cu12" -version = "12.1.105" -description = "NVIDIA Tools Extension" -optional = false -python-versions = ">=3" -files = [ - {file = "nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:dc21cf308ca5691e7c04d962e213f8a4aa9bbfa23d95412f452254c2caeb09e5"}, - {file = "nvidia_nvtx_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:65f4d98982b31b60026e0e6de73fbdfc09d08a96f4656dd3665ca616a11e1e82"}, -] - [[package]] name = "nvitop" version = "0.11.0" @@ -3778,9 +3627,9 @@ files = [ [package.dependencies] numpy = [ + {version = ">=1.21.0", markers = "python_version == \"3.9\" and platform_system == \"Darwin\" and platform_machine == \"arm64\""}, {version = ">=1.21.4", markers = "python_version >= \"3.10\" and platform_system == \"Darwin\""}, {version = ">=1.21.2", markers = "platform_system != \"Darwin\" and python_version >= \"3.10\""}, - {version = ">=1.21.0", markers = "python_version == \"3.9\" and platform_system == \"Darwin\" and platform_machine == \"arm64\""}, {version = ">=1.19.3", markers = "platform_system == \"Linux\" and platform_machine == \"aarch64\" and python_version >= \"3.8\" and python_version < \"3.10\" or python_version > \"3.9\" and python_version < \"3.10\" or python_version >= \"3.9\" and platform_system != \"Darwin\" and python_version < \"3.10\" or python_version >= \"3.9\" and platform_machine != \"arm64\" and python_version < \"3.10\""}, ] @@ -3802,9 +3651,9 @@ files = [ [package.dependencies] numpy = [ + {version = ">=1.21.0", markers = "python_version == \"3.9\" and platform_system == \"Darwin\" and platform_machine == \"arm64\""}, {version = ">=1.21.4", markers = "python_version >= \"3.10\" and platform_system == \"Darwin\""}, {version = ">=1.21.2", markers = "platform_system != \"Darwin\" and python_version >= \"3.10\""}, - {version = ">=1.21.0", markers = "python_version == \"3.9\" and platform_system == \"Darwin\" and platform_machine == \"arm64\""}, {version = ">=1.19.3", markers = "platform_system == \"Linux\" and platform_machine == \"aarch64\" and python_version >= \"3.8\" and python_version < \"3.10\" or python_version > \"3.9\" and python_version < \"3.10\" or python_version >= \"3.9\" and platform_system != \"Darwin\" and python_version < \"3.10\" or python_version >= \"3.9\" and platform_machine != \"arm64\" and python_version < \"3.10\""}, ] @@ -3961,8 +3810,8 @@ files = [ [package.dependencies] numpy = [ - {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, {version = ">=1.20.3", markers = "python_version < \"3.10\""}, + {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, ] python-dateutil = ">=2.8.1" pytz = ">=2020.1" @@ -4799,7 +4648,7 @@ files = [ [[package]] name = "pyyaml-env-tag" version = "0.1" -description = "A custom YAML tag for referencing environment variables in YAML files." +description = "A custom YAML tag for referencing environment variables in YAML files. " optional = false python-versions = ">=3.6" files = [ @@ -5293,6 +5142,7 @@ description = "Scikit-multilearn is a BSD-licensed library for multi-label class optional = false python-versions = "*" files = [ + {file = "scikit-multilearn-0.2.0.linux-x86_64.tar.gz", hash = "sha256:3179fed29b1492f6a69600696c23045b9f494d2b89d1796a8bdc43ccbb33712b"}, {file = "scikit_multilearn-0.2.0-py2-none-any.whl", hash = "sha256:0a389600a6797db6567f2f6ca1d0dca30bebfaaa73f75de62d7ae40f8f03d4fb"}, {file = "scikit_multilearn-0.2.0-py3-none-any.whl", hash = "sha256:068c652f22704a084ca252d05d21a655e7c9b248d0a4543847b74de5fca2b3f0"}, ] @@ -5376,31 +5226,21 @@ cryptography = ">=2.0" jeepney = ">=0.6" [[package]] -name = "segmentation_models_pytorch" -version = "0.3.3" -description = "Image segmentation models with pre-trained backbones. PyTorch." +name = "segmentation-models-pytorch-orobix" +version = "0.3.3.dev1" +description = "Deep Learning experiment orchestration library" optional = false -python-versions = ">=3.7.0" -files = [] -develop = false +python-versions = "<3.11,>=3.9" +files = [ + {file = "segmentation_models_pytorch_orobix-0.3.3.dev1-py3-none-any.whl", hash = "sha256:e64ac97161fecb12af51f073c24b3a74c0f6ef37e39a756f7e846340ab3156a8"}, + {file = "segmentation_models_pytorch_orobix-0.3.3.dev1.tar.gz", hash = "sha256:291d3d36c84cefd9af3b31be2c49b494bf36385b2da77353642344168b979025"}, +] [package.dependencies] efficientnet-pytorch = "0.7.1" -pillow = "*" pretrainedmodels = "0.7.4" -six = "*" -timm = "0.9.12" +timm = ">=0.9.12,<0.10.0" torchvision = ">=0.5.0" -tqdm = "*" - -[package.extras] -test = ["black (==22.3.0)", "flake8 (==4.0.1)", "flake8-docstrings (==1.6.0)", "mock", "pre-commit", "pytest"] - -[package.source] -type = "git" -url = "https://github.com/qubvel/segmentation_models.pytorch" -reference = "7b381f899ed472a477a89d381689caf535b5d0a6" -resolved_reference = "7b381f899ed472a477a89d381689caf535b5d0a6" [[package]] name = "sentry-sdk" @@ -5436,7 +5276,7 @@ huey = ["huey (>=2)"] loguru = ["loguru (>=0.5)"] opentelemetry = ["opentelemetry-distro (>=0.35b0)"] opentelemetry-experimental = ["opentelemetry-distro (>=0.40b0,<1.0)", "opentelemetry-instrumentation-aiohttp-client (>=0.40b0,<1.0)", "opentelemetry-instrumentation-django (>=0.40b0,<1.0)", "opentelemetry-instrumentation-fastapi (>=0.40b0,<1.0)", "opentelemetry-instrumentation-flask (>=0.40b0,<1.0)", "opentelemetry-instrumentation-requests (>=0.40b0,<1.0)", "opentelemetry-instrumentation-sqlite3 (>=0.40b0,<1.0)", "opentelemetry-instrumentation-urllib (>=0.40b0,<1.0)"] -pure-eval = ["asttokens", "executing", "pure-eval"] +pure-eval = ["asttokens", "executing", "pure_eval"] pymongo = ["pymongo (>=3.1)"] pyspark = ["pyspark (>=2.4.4)"] quart = ["blinker (>=1.1)", "quart (>=0.16.1)"] @@ -5729,7 +5569,7 @@ typing-extensions = ">=4.6.0" [package.extras] aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] -aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] @@ -5739,7 +5579,7 @@ mssql-pyodbc = ["pyodbc"] mypy = ["mypy (>=0.910)"] mysql = ["mysqlclient (>=1.4.0)"] mysql-connector = ["mysql-connector-python"] -oracle = ["cx-oracle (>=8)"] +oracle = ["cx_oracle (>=8)"] oracle-oracledb = ["oracledb (>=1.0.1)"] postgresql = ["psycopg2 (>=2.7)"] postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] @@ -5749,7 +5589,7 @@ postgresql-psycopg2binary = ["psycopg2-binary"] postgresql-psycopg2cffi = ["psycopg2cffi"] postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] pymysql = ["pymysql"] -sqlcipher = ["sqlcipher3-binary"] +sqlcipher = ["sqlcipher3_binary"] [[package]] name = "sqlparse" @@ -5993,96 +5833,12 @@ optional = false python-versions = ">=3.8.0" files = [ {file = "torch-2.1.2+cu121-cp310-cp310-linux_x86_64.whl", hash = "sha256:b2184b7729ef3b9b10065c074a37c1e603fd99f91e38376e25cb7ed6e1d54696"}, -] - -[package.dependencies] -filelock = "*" -fsspec = "*" -jinja2 = "*" -networkx = "*" -sympy = "*" -triton = {version = "2.1.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -typing-extensions = "*" - -[package.extras] -dynamo = ["jinja2"] -opt-einsum = ["opt-einsum (>=3.3)"] - -[package.source] -type = "url" -url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp310-cp310-linux_x86_64.whl" - -[[package]] -name = "torch" -version = "2.1.2+cu121" -description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" -optional = false -python-versions = ">=3.8.0" -files = [ {file = "torch-2.1.2+cu121-cp310-cp310-win_amd64.whl", hash = "sha256:9925143dece0e63c5404a72d59eb668ef78795418e96b576f94d75dcea6030b9"}, -] - -[package.dependencies] -filelock = "*" -fsspec = "*" -jinja2 = "*" -networkx = "*" -nvidia-cublas-cu12 = {version = "12.1.3.1", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cuda-cupti-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cuda-nvrtc-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cuda-runtime-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cudnn-cu12 = {version = "8.9.2.26", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cufft-cu12 = {version = "11.0.2.54", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-curand-cu12 = {version = "10.3.2.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cusolver-cu12 = {version = "11.4.5.107", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cusparse-cu12 = {version = "12.1.0.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-nccl-cu12 = {version = "2.18.1", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-nvtx-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -sympy = "*" -triton = {version = "2.1.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -typing-extensions = "*" - -[package.extras] -opt-einsum = ["opt-einsum (>=3.3)"] - -[package.source] -type = "url" -url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp310-cp310-win_amd64.whl" - -[[package]] -name = "torch" -version = "2.1.2+cu121" -description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" -optional = false -python-versions = ">=3.8.0" -files = [ + {file = "torch-2.1.2+cu121-cp311-cp311-linux_x86_64.whl", hash = "sha256:ca05cae9334504d1903e16c50ddf045329a859d5b1a27ed2dc1d58ed066df6fa"}, + {file = "torch-2.1.2+cu121-cp311-cp311-win_amd64.whl", hash = "sha256:c92e9c559a82466fc5989f648807d2c0215bcce09b97ad7a20d038b686783229"}, + {file = "torch-2.1.2+cu121-cp38-cp38-linux_x86_64.whl", hash = "sha256:daa179bb558f78f2165db974a6744ec8de2ea71eb6aaf362bdae7616012c0302"}, + {file = "torch-2.1.2+cu121-cp38-cp38-win_amd64.whl", hash = "sha256:44c31fc1e470428682e212473507116ec3afa583d6b79d92858bf3dc24b334ea"}, {file = "torch-2.1.2+cu121-cp39-cp39-linux_x86_64.whl", hash = "sha256:eaaf6907e3723c0ca6a91df5e01a7eef8cabec93120e9a50739f5a5f14a2aa46"}, -] - -[package.dependencies] -filelock = "*" -fsspec = "*" -jinja2 = "*" -networkx = "*" -sympy = "*" -triton = {version = "2.1.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -typing-extensions = "*" - -[package.extras] -dynamo = ["jinja2"] -opt-einsum = ["opt-einsum (>=3.3)"] - -[package.source] -type = "url" -url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp39-cp39-linux_x86_64.whl" - -[[package]] -name = "torch" -version = "2.1.2+cu121" -description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" -optional = false -python-versions = ">=3.8.0" -files = [ {file = "torch-2.1.2+cu121-cp39-cp39-win_amd64.whl", hash = "sha256:2d287804328dfb950ae6d418c9d8561d8f379237cf0710566d80efb96b6cd744"}, ] @@ -6091,27 +5847,18 @@ filelock = "*" fsspec = "*" jinja2 = "*" networkx = "*" -nvidia-cublas-cu12 = {version = "12.1.3.1", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cuda-cupti-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cuda-nvrtc-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cuda-runtime-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cudnn-cu12 = {version = "8.9.2.26", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cufft-cu12 = {version = "11.0.2.54", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-curand-cu12 = {version = "10.3.2.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cusolver-cu12 = {version = "11.4.5.107", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-cusparse-cu12 = {version = "12.1.0.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-nccl-cu12 = {version = "2.18.1", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-nvtx-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} sympy = "*" triton = {version = "2.1.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} typing-extensions = "*" [package.extras] +dynamo = ["jinja2"] opt-einsum = ["opt-einsum (>=3.3)"] [package.source] -type = "url" -url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp39-cp39-win_amd64.whl" +type = "legacy" +url = "https://download.pytorch.org/whl/cu121" +reference = "torch_cu121" [[package]] name = "torchinfo" @@ -6937,4 +6684,4 @@ onnx = ["onnx", "onnxconverter-common", "onnxruntime_gpu", "onnxsim"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.11" -content-hash = "d4b357468bfe398840abf8c9011767d00ddc950f14176894106e748a5fdcd649" +content-hash = "8c553061ec71389bc254a1baecb7cdabdef0a08c70227782f2eaa83164710748" diff --git a/pyproject.toml b/pyproject.toml index 8690288c..cdadeef5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,12 +40,7 @@ quadra = "quadra.main:main" [tool.poetry.dependencies] python = ">=3.9,<3.11" -torch = [ - { url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp310-cp310-linux_x86_64.whl", markers = "sys_platform == 'linux' and python_version == '3.10'" }, - { url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp310-cp310-win_amd64.whl", markers = "sys_platform == 'win32' and python_version == '3.10'" }, - { url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp39-cp39-linux_x86_64.whl", markers = "sys_platform == 'linux' and python_version == '3.9'" }, - { url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp39-cp39-win_amd64.whl", markers = "sys_platform == 'win32' and python_version == '3.9'" }, -] +torch = { version = "2.1.2", source = "torch_cu121" } torchvision = { version = "~0.16", source = "torch_cu121" } pytorch_lightning = "~2.1" @@ -75,9 +70,9 @@ scikit_multilearn = "~0.2" tripy = "~1.0" h5py = "~3.8" timm = "0.9.12" -# Right now only this ref supports timm 0.9.12 -segmentation_models_pytorch = { git = "https://github.com/qubvel/segmentation_models.pytorch", rev = "7b381f899ed472a477a89d381689caf535b5d0a6" } -anomalib = { git = "https://github.com/orobix/anomalib.git", tag = "v0.7.0+obx.1.3.3" } + +segmentation_models_pytorch-orobix = "0.3.3.dev1" +anomalib-orobix = "0.7.0.dev134" xxhash = "~3.2" torchinfo = "~1.8" typing_extensions = { version = "4.11.0", python = "<3.10" } From 4ee8d304277cbc2b9e1d908486d815f2ae585d0f Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Thu, 11 Jul 2024 18:14:42 +0200 Subject: [PATCH 02/13] docs: Fix broken links for public images, update installation to mention pypi --- README.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index c857b785..af9e3928 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

- Quadra Logo + Quadra Logo

@@ -20,7 +20,7 @@ alt="pre-commit" /> interrogate Date: Thu, 11 Jul 2024 18:14:57 +0200 Subject: [PATCH 03/13] build: Bump version --- pyproject.toml | 2 +- quadra/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index cdadeef5..d0b362e6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quadra" -version = "2.1.13" +version = "2.2.0" description = "Deep Learning experiment orchestration library" authors = [ "Federico Belotti ", diff --git a/quadra/__init__.py b/quadra/__init__.py index 02993008..ded830fa 100644 --- a/quadra/__init__.py +++ b/quadra/__init__.py @@ -1,4 +1,4 @@ -__version__ = "2.1.13" +__version__ = "2.2.0" def get_version(): From 7639fc06ef81a9871dfcc71c9011ff98e0db8599 Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Mon, 15 Jul 2024 10:49:21 +0200 Subject: [PATCH 04/13] build: Update anomalib version --- poetry.lock | 25 ++++++++++++------------- pyproject.toml | 2 +- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/poetry.lock b/poetry.lock index bc133150..b8f0edc8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -187,13 +187,13 @@ test = ["flake8 (==3.7.9)", "mock (==2.0.0)", "pylint (==1.9.3)"] [[package]] name = "anomalib-orobix" -version = "0.7.0.dev134" +version = "0.7.0.dev140" description = "Orobix anomalib fork" optional = false -python-versions = "<3.11,>=3.9" +python-versions = ">=3.9,<3.11" files = [ - {file = "anomalib_orobix-0.7.0.dev134-py3-none-any.whl", hash = "sha256:b01c4145feada8d951b9fd12b6b2de873e0bda25dc640961428b0661bc49a149"}, - {file = "anomalib_orobix-0.7.0.dev134.tar.gz", hash = "sha256:dcfc0896938dbcb9dd185780421111ef8d200ef25c89d92fa883a076654430d3"}, + {file = "anomalib_orobix-0.7.0.dev140-py3-none-any.whl", hash = "sha256:4d78ab39fd38c88214b89edd6eccb3f66f91e5771f9f6382e4140bb348ac9ac9"}, + {file = "anomalib_orobix-0.7.0.dev140.tar.gz", hash = "sha256:e9c6d3a1c4547366d7622295080ab85710a381831f6b7d0a29dd03ae061a656d"}, ] [package.dependencies] @@ -2618,7 +2618,7 @@ files = [ cssselect = ["cssselect (>=0.7)"] html5 = ["html5lib"] htmlsoup = ["BeautifulSoup4"] -source = ["Cython (>=3.0.7)"] +source = ["Cython (>=3.0.8)"] [[package]] name = "mako" @@ -4648,7 +4648,7 @@ files = [ [[package]] name = "pyyaml-env-tag" version = "0.1" -description = "A custom YAML tag for referencing environment variables in YAML files. " +description = "A custom YAML tag for referencing environment variables in YAML files." optional = false python-versions = ">=3.6" files = [ @@ -5142,7 +5142,6 @@ description = "Scikit-multilearn is a BSD-licensed library for multi-label class optional = false python-versions = "*" files = [ - {file = "scikit-multilearn-0.2.0.linux-x86_64.tar.gz", hash = "sha256:3179fed29b1492f6a69600696c23045b9f494d2b89d1796a8bdc43ccbb33712b"}, {file = "scikit_multilearn-0.2.0-py2-none-any.whl", hash = "sha256:0a389600a6797db6567f2f6ca1d0dca30bebfaaa73f75de62d7ae40f8f03d4fb"}, {file = "scikit_multilearn-0.2.0-py3-none-any.whl", hash = "sha256:068c652f22704a084ca252d05d21a655e7c9b248d0a4543847b74de5fca2b3f0"}, ] @@ -5230,7 +5229,7 @@ name = "segmentation-models-pytorch-orobix" version = "0.3.3.dev1" description = "Deep Learning experiment orchestration library" optional = false -python-versions = "<3.11,>=3.9" +python-versions = ">=3.9,<3.11" files = [ {file = "segmentation_models_pytorch_orobix-0.3.3.dev1-py3-none-any.whl", hash = "sha256:e64ac97161fecb12af51f073c24b3a74c0f6ef37e39a756f7e846340ab3156a8"}, {file = "segmentation_models_pytorch_orobix-0.3.3.dev1.tar.gz", hash = "sha256:291d3d36c84cefd9af3b31be2c49b494bf36385b2da77353642344168b979025"}, @@ -5276,7 +5275,7 @@ huey = ["huey (>=2)"] loguru = ["loguru (>=0.5)"] opentelemetry = ["opentelemetry-distro (>=0.35b0)"] opentelemetry-experimental = ["opentelemetry-distro (>=0.40b0,<1.0)", "opentelemetry-instrumentation-aiohttp-client (>=0.40b0,<1.0)", "opentelemetry-instrumentation-django (>=0.40b0,<1.0)", "opentelemetry-instrumentation-fastapi (>=0.40b0,<1.0)", "opentelemetry-instrumentation-flask (>=0.40b0,<1.0)", "opentelemetry-instrumentation-requests (>=0.40b0,<1.0)", "opentelemetry-instrumentation-sqlite3 (>=0.40b0,<1.0)", "opentelemetry-instrumentation-urllib (>=0.40b0,<1.0)"] -pure-eval = ["asttokens", "executing", "pure_eval"] +pure-eval = ["asttokens", "executing", "pure-eval"] pymongo = ["pymongo (>=3.1)"] pyspark = ["pyspark (>=2.4.4)"] quart = ["blinker (>=1.1)", "quart (>=0.16.1)"] @@ -5569,7 +5568,7 @@ typing-extensions = ">=4.6.0" [package.extras] aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] -aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] @@ -5579,7 +5578,7 @@ mssql-pyodbc = ["pyodbc"] mypy = ["mypy (>=0.910)"] mysql = ["mysqlclient (>=1.4.0)"] mysql-connector = ["mysql-connector-python"] -oracle = ["cx_oracle (>=8)"] +oracle = ["cx-oracle (>=8)"] oracle-oracledb = ["oracledb (>=1.0.1)"] postgresql = ["psycopg2 (>=2.7)"] postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] @@ -5589,7 +5588,7 @@ postgresql-psycopg2binary = ["psycopg2-binary"] postgresql-psycopg2cffi = ["psycopg2cffi"] postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] pymysql = ["pymysql"] -sqlcipher = ["sqlcipher3_binary"] +sqlcipher = ["sqlcipher3-binary"] [[package]] name = "sqlparse" @@ -6684,4 +6683,4 @@ onnx = ["onnx", "onnxconverter-common", "onnxruntime_gpu", "onnxsim"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.11" -content-hash = "8c553061ec71389bc254a1baecb7cdabdef0a08c70227782f2eaa83164710748" +content-hash = "9e825cd3ec4777fcaf2aac90adb3d68fbdb7b114f3bcae89de32ff0f49dc8956" diff --git a/pyproject.toml b/pyproject.toml index d0b362e6..81fb4ab3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -72,7 +72,7 @@ h5py = "~3.8" timm = "0.9.12" segmentation_models_pytorch-orobix = "0.3.3.dev1" -anomalib-orobix = "0.7.0.dev134" +anomalib-orobix = "0.7.0.dev140" xxhash = "~3.2" torchinfo = "~1.8" typing_extensions = { version = "4.11.0", python = "<3.10" } From 5a4955adc47e64768801f6c0b2db89a3947c0402 Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Mon, 15 Jul 2024 11:51:23 +0200 Subject: [PATCH 05/13] build: Upgrade version --- CHANGELOG.md | 14 ++++++++++++++ pyproject.toml | 2 +- quadra/__init__.py | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b753d1a..7a22117c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,22 @@ # Changelog All notable changes to this project will be documented in this file. +### [2.2.1] + +#### Updated + +- Update anomalib version, improve release workflow + +### [2.2.0] + +#### Updated + +- Update dependencies to support publishing Quadra to PyPI + ### [2.1.13] +#### Updated + - Improve safe batch size computation for sklearn based classification tasks ### [2.1.12] diff --git a/pyproject.toml b/pyproject.toml index 81fb4ab3..8241246a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quadra" -version = "2.2.0" +version = "2.2.1" description = "Deep Learning experiment orchestration library" authors = [ "Federico Belotti ", diff --git a/quadra/__init__.py b/quadra/__init__.py index ded830fa..c69109dd 100644 --- a/quadra/__init__.py +++ b/quadra/__init__.py @@ -1,4 +1,4 @@ -__version__ = "2.2.0" +__version__ = "2.2.1" def get_version(): From 90c62cdd73df4ff5e96fc314e3406131b77c307d Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Mon, 15 Jul 2024 12:47:37 +0200 Subject: [PATCH 06/13] build: Test automatic upload on testpypi --- .github/workflows/release.yml | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..901e3bae --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,41 @@ +name: PyPI release + +on: + push: + branches: [main] + +defaults: + run: + shell: bash + +jobs: + tests: + needs: + - build + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + python-version: ["3.10"] + timeout-minutes: 60 + environment: + name: testpypi + url: https://test.pypi.org/p/quadra + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing + steps: + - uses: actions/checkout@v3 + - name: Publish on pypi + run: | + curl -sSL https://install.python-poetry.org | python3 - + poetry publish --build + # - name: Download all the dists + # uses: actions/download-artifact@v3 + # with: + # name: python-package-distributions + # path: dist/ + - name: Publish distribution 📦 to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://test.pypi.org/legacy/ From 04efe87a89bcfa058695eb21a8aab1e9c9dbfd02 Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Mon, 15 Jul 2024 12:50:47 +0200 Subject: [PATCH 07/13] build: Test automatic upload on testpypi --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 901e3bae..b4a2e301 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,6 +3,8 @@ name: PyPI release on: push: branches: [main] + pull_request: + branches: [main] defaults: run: From 34667fe98b70c84a8aa2a4692cd00818915911bb Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Mon, 15 Jul 2024 12:55:52 +0200 Subject: [PATCH 08/13] wip: Testing bitbucket pipelines --- .github/workflows/release.yml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b4a2e301..d6ac5a11 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,17 +3,17 @@ name: PyPI release on: push: branches: [main] - pull_request: - branches: [main] + workflow_dispatch: + # pull_request: + # branches: [main] defaults: run: shell: bash jobs: - tests: - needs: - - build + publish-to-testpypi: + name: Publish to TestPyPI runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -32,11 +32,6 @@ jobs: run: | curl -sSL https://install.python-poetry.org | python3 - poetry publish --build - # - name: Download all the dists - # uses: actions/download-artifact@v3 - # with: - # name: python-package-distributions - # path: dist/ - name: Publish distribution 📦 to TestPyPI uses: pypa/gh-action-pypi-publish@release/v1 with: From 1a05712c438288a357e0898b943cf59e952ae970 Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Mon, 15 Jul 2024 12:58:10 +0200 Subject: [PATCH 09/13] wip: Testing bitbucket pipelines --- .github/workflows/release.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d6ac5a11..0daa68a4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,9 +3,8 @@ name: PyPI release on: push: branches: [main] - workflow_dispatch: - # pull_request: - # branches: [main] + pull_request: + branches: [main] defaults: run: From 6081e5c7f041c0a3e073f2c915aa2c13e86859f4 Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Mon, 15 Jul 2024 12:59:35 +0200 Subject: [PATCH 10/13] wip: Testing bitbucket pipelines --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0daa68a4..d6b129b1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,10 +27,10 @@ jobs: id-token: write # IMPORTANT: mandatory for trusted publishing steps: - uses: actions/checkout@v3 - - name: Publish on pypi + - name: Build distribution 📦 run: | curl -sSL https://install.python-poetry.org | python3 - - poetry publish --build + poetry build - name: Publish distribution 📦 to TestPyPI uses: pypa/gh-action-pypi-publish@release/v1 with: From b78287ba9db8054d513a8fad7596f834654edc36 Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Mon, 15 Jul 2024 13:05:57 +0200 Subject: [PATCH 11/13] wip: Temporary try new version --- pyproject.toml | 2 +- quadra/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8241246a..fa47df82 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quadra" -version = "2.2.1" +version = "2.2.2a0" description = "Deep Learning experiment orchestration library" authors = [ "Federico Belotti ", diff --git a/quadra/__init__.py b/quadra/__init__.py index c69109dd..51ebcdd7 100644 --- a/quadra/__init__.py +++ b/quadra/__init__.py @@ -1,4 +1,4 @@ -__version__ = "2.2.1" +__version__ = "2.2.2a0" def get_version(): From dc75d60e0c369950dadaeb13bf42bfcec38b6249 Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Mon, 15 Jul 2024 13:13:10 +0200 Subject: [PATCH 12/13] build: Update pipeline to publish on pypi --- .github/workflows/release.yml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d6b129b1..a412f02e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,16 +3,14 @@ name: PyPI release on: push: branches: [main] - pull_request: - branches: [main] defaults: run: shell: bash jobs: - publish-to-testpypi: - name: Publish to TestPyPI + publish-to-pypi: + name: Publish to PyPI runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -21,8 +19,8 @@ jobs: python-version: ["3.10"] timeout-minutes: 60 environment: - name: testpypi - url: https://test.pypi.org/p/quadra + name: pypi + url: https://pypi.org/p/quadra permissions: id-token: write # IMPORTANT: mandatory for trusted publishing steps: @@ -31,7 +29,5 @@ jobs: run: | curl -sSL https://install.python-poetry.org | python3 - poetry build - - name: Publish distribution 📦 to TestPyPI + - name: Publish distribution 📦 to PyPI uses: pypa/gh-action-pypi-publish@release/v1 - with: - repository-url: https://test.pypi.org/legacy/ From b27f79755c38bc7b52e80d27197cd785704032e7 Mon Sep 17 00:00:00 2001 From: Lorenzo Mammana Date: Mon, 15 Jul 2024 14:42:25 +0200 Subject: [PATCH 13/13] build: Revert correct version --- pyproject.toml | 2 +- quadra/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index fa47df82..8241246a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quadra" -version = "2.2.2a0" +version = "2.2.1" description = "Deep Learning experiment orchestration library" authors = [ "Federico Belotti ", diff --git a/quadra/__init__.py b/quadra/__init__.py index 51ebcdd7..c69109dd 100644 --- a/quadra/__init__.py +++ b/quadra/__init__.py @@ -1,4 +1,4 @@ -__version__ = "2.2.2a0" +__version__ = "2.2.1" def get_version():