Skip to content

Commit 510e7d8

Browse files
Feat/bridge (#258)
* refactor(utils): introduce library mode inc. auto-detection * refactor(utils): don't initialize sentry, logfire, ssl trust store or certifi in library mode * refactor(utils): lower log level of boot message * refactor(utils): introduce loguru * refactor(utils): remove logfire * chore(release): start to adapt expected output for heta update * chore(deps): bump * test(utils): add missing unit test marker
1 parent 3af645f commit 510e7d8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+1817
-2063
lines changed

.env.example

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ AIGNOSTICS_SYSTEM_TOKEN=YOUR_SECRET_TOKEN
33
AIGNOSTICS_LOG_LEVEL=INFO
44
AIGNOSTICS_LOG_FILE_ENABLED=false
55
AIGNOSTICS_LOG_FILE_NAME=aignostics.log
6-
AIGNOSTICS_LOG_CONSOLE_ENABLED=false
7-
AIGNOSTICS_LOGFIRE_ENABLED=false
8-
AIGNOSTICS_LOGFIRE_INSTRUMENT_SYSTEM_METRICS=true
6+
AIGNOSTICS_LOG_STDERR_ENABLED=false
97
AIGNOSTICS_SENTRY_ENABLED=false
108
AIGNOSTICS_SENTRY_DEBUG=false
119
AIGNOSTICS_SENTRY_SEND_DEFAULT_PII=false

.github/workflows/_install_dev_tools.bash

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ log() {
1111
log "Starting installation of development tools..."
1212

1313
# Disable man-db updates to speed up package installation
14-
sudo rm /var/lib/man-db/auto-update
14+
sudo rm -f /var/lib/man-db/auto-update
1515

1616
# Install APT packages
1717
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -

ATTRIBUTIONS.md

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -506,40 +506,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
506506

507507
```
508508

509-
## aignostics (0.2.192) - MIT License
510-
511-
🔬 Python SDK providing access to the Aignostics Platform. Includes Aignostics Launchpad (Desktop Application), Aignostics CLI (Command-Line Interface), example notebooks, and Aignostics Client Library.
512-
513-
* URL: https://aignostics.readthedocs.io/en/latest/
514-
* Author(s): Helmut Hoffer von Ankershoffen <[email protected]>, Andreas Kunft <[email protected]>
515-
516-
### License Text
517-
518-
```
519-
MIT License
520-
521-
Copyright (c) [2025] [Aignostics GmbH ([email protected])]
522-
523-
Permission is hereby granted, free of charge, to any person obtaining a copy
524-
of this software and associated documentation files (the "Software"), to deal
525-
in the Software without restriction, including without limitation the rights
526-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
527-
copies of the Software, and to permit persons to whom the Software is
528-
furnished to do so, subject to the following conditions:
529-
530-
The above copyright notice and this permission notice shall be included in all
531-
copies or substantial portions of the Software.
532-
533-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
534-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
535-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
536-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
537-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
538-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
539-
SOFTWARE.
540-
541-
```
542-
543509
## aiofile (3.9.0) - Apache Software License
544510

545511
Asynchronous file operations.
@@ -1760,6 +1726,40 @@ IN THE SOFTWARE.
17601726

17611727
```
17621728

1729+
## annotated-doc (0.0.3) - MIT License
1730+
1731+
Document parameters, class attributes, return types, and variables inline, with Annotated.
1732+
1733+
* URL: https://github.com/fastapi/annotated-doc
1734+
* Author(s): Sebastián Ramírez
1735+
1736+
### License Text
1737+
1738+
```
1739+
The MIT License (MIT)
1740+
1741+
Copyright (c) 2025 Sebastián Ramírez
1742+
1743+
Permission is hereby granted, free of charge, to any person obtaining a copy
1744+
of this software and associated documentation files (the "Software"), to deal
1745+
in the Software without restriction, including without limitation the rights
1746+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1747+
copies of the Software, and to permit persons to whom the Software is
1748+
furnished to do so, subject to the following conditions:
1749+
1750+
The above copyright notice and this permission notice shall be included in
1751+
all copies or substantial portions of the Software.
1752+
1753+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1754+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1755+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1756+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1757+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1758+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1759+
THE SOFTWARE.
1760+
1761+
```
1762+
17631763
## annotated-types (0.7.0) - MIT License
17641764

17651765
Reusable constraint types to use with typing.Annotated
@@ -3659,7 +3659,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36593659

36603660
```
36613661

3662-
## boto3 (1.40.51) - Apache Software License
3662+
## boto3 (1.40.59) - Apache-2.0
36633663

36643664
The AWS SDK for Python
36653665

@@ -3857,7 +3857,7 @@ Copyright 2013-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
38573857

38583858
```
38593859

3860-
## botocore (1.40.51) - Apache-2.0
3860+
## botocore (1.40.59) - Apache-2.0
38613861

38623862
Low-level, data-driven core of boto 3.
38633863

@@ -7585,7 +7585,7 @@ SOFTWARE.
75857585

75867586
```
75877587

7588-
## fastapi (0.119.0) - MIT License
7588+
## fastapi (0.120.0) - MIT License
75897589

75907590
FastAPI framework, high performance, easy to learn, fast to code, ready for production
75917591

@@ -10400,7 +10400,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
1040010400

1040110401
```
1040210402

10403-
## humanize (4.13.0) - UNKNOWN
10403+
## humanize (4.14.0) - UNKNOWN
1040410404

1040510405
Python humanize utilities
1040610406

@@ -12606,7 +12606,7 @@ license-expression is a comprehensive utility library to parse, compare, simplif
1260612606

1260712607
```
1260812608

12609-
## logfire (4.13.2) - UNKNOWN
12609+
## logfire (4.14.2) - UNKNOWN
1261012610

1261112611
The best Python observability tool! 🪵🔥
1261212612

@@ -12794,7 +12794,7 @@ Copyright 2010-2020 - Ronald Oussoren
1279412794

1279512795
```
1279612796

12797-
## marimo (0.16.5) - Apache Software License
12797+
## marimo (0.17.2) - Apache Software License
1279812798

1279912799
A library for making reactive notebooks and apps
1280012800

@@ -13272,12 +13272,12 @@ Copyright (C) 2008-2011 INADA Naoki <[email protected]>
1327213272

1327313273
```
1327413274

13275-
## msgspec (0.19.0) - BSD License
13275+
## msgspec_m (0.19.2) - BSD License
1327613276

1327713277
A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML.
1327813278

13279-
* URL: https://jcristharif.com/msgspec/
13280-
* Maintainer(s): Jim Crist-Harif
13279+
* URL: https://github.com/marimo-team/msgspec
13280+
* Maintainer(s): marimo team
1328113281

1328213282
### License Text
1328313283

@@ -13855,7 +13855,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1385513855

1385613856
```
1385713857

13858-
## nicegui (3.0.4) - MIT License
13858+
## nicegui (3.1.0) - MIT License
1385913859

1386013860
Create web-based user interfaces with Python. The nice way.
1386113861

@@ -14020,7 +14020,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1402014020

1402114021
```
1402214022

14023-
## nox (2025.5.1) - UNKNOWN
14023+
## nox (2025.10.16) - UNKNOWN
1402414024

1402514025
Flexible test automation.
1402614026

@@ -24654,7 +24654,7 @@ Proxy Implementation
2465424654
* URL: http://github.com/jtushman/proxy_tools
2465524655
* Author(s): Jonathan Tushman
2465624656

24657-
## psutil (7.1.0) - BSD-3-Clause
24657+
## psutil (7.1.2) - BSD-3-Clause
2465824658

2465924659
Cross-platform lib for process and system monitoring.
2466024660

@@ -28387,7 +28387,7 @@ C version of reader, parser and emitter for ruamel.yaml derived from libyaml
2838728387

2838828388
```
2838928389

28390-
## ruff (0.14.0) - MIT License
28390+
## ruff (0.14.2) - MIT License
2839128391

2839228392
An extremely fast Python linter and code formatter, written in Rust.
2839328393

@@ -29563,7 +29563,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2956329563

2956429564
```
2956529565

29566-
## sentry-sdk (2.41.0) - BSD License
29566+
## sentry-sdk (2.42.1) - BSD License
2956729567

2956829568
Python client for Sentry (https://sentry.io)
2956929569

@@ -31791,7 +31791,7 @@ SOFTWARE.
3179131791

3179231792
```
3179331793

31794-
## typer (0.19.2) - MIT License
31794+
## typer (0.20.0) - MIT License
3179531795

3179631796
Typer, build great CLIs. Easy to code. Based on Python type hints.
3179731797

@@ -33192,7 +33192,7 @@ SOFTWARE.
3319233192

3319333193
```
3319433194

33195-
## uv (0.9.2) - Apache Software License; MIT License
33195+
## uv (0.9.5) - Apache Software License; MIT License
3319633196

3319733197
An extremely fast Python package and project manager, written in Rust.
3319833198

CLI_REFERENCE.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ $ aignostics [OPTIONS] COMMAND [ARGS]...
1414
* `--show-completion`: Show completion for the current shell, to copy it or customize the installation.
1515
* `--help`: Show this message and exit.
1616

17-
🔬 Aignostics Python SDK v0.2.195 - built with love in Berlin 🐻
17+
🔬 Aignostics Python SDK v0.2.199 - built with love in Berlin 🐻
1818

1919
**Commands**:
2020

@@ -204,7 +204,7 @@ $ aignostics application run execute [OPTIONS] APPLICATION_ID METADATA_CSV_FILE
204204
* `--application-version TEXT`: Version of the application. If not provided, the latest version will be used.
205205
* `--create-subdirectory-for-run / --no-create-subdirectory-for-run`: Create a subdirectory for the results of the run in the destination directory [default: create-subdirectory-for-run]
206206
* `--create-subdirectory-per-item / --no-create-subdirectory-per-item`: Create a subdirectory per item in the destination directory [default: create-subdirectory-per-item]
207-
* `--upload-prefix TEXT`: Prefix for the upload destination. If not given will be set to current milliseconds. [default: 1761499056785.385]
207+
* `--upload-prefix TEXT`: Prefix for the upload destination. If not given will be set to current milliseconds. [default: 1763046365825.4631]
208208
* `--wait-for-completion / --no-wait-for-completion`: Wait for run completion and download results incrementally [default: wait-for-completion]
209209
* `--note TEXT`: Optional note to include with the run submission via custom metadata.
210210
* `--due-date TEXT`: Optional soft due date to include with the run submission, ISO8601 format. The scheduler will try to complete the run by this date, taking the subscription tierand available GPU resources into account.
@@ -267,7 +267,7 @@ $ aignostics application run upload [OPTIONS] APPLICATION_ID METADATA_CSV_FILE
267267
**Options**:
268268

269269
* `--application-version TEXT`: Version of the application. If not provided, the latest version will be used.
270-
* `--upload-prefix TEXT`: Prefix for the upload destination. If not given will be set to current milliseconds. [default: 1761499056785.492]
270+
* `--upload-prefix TEXT`: Prefix for the upload destination. If not given will be set to current milliseconds. [default: 1763046365825.575]
271271
* `--onboard-to-aignostics-portal / --no-onboard-to-aignostics-portal`: If set, the run will be onboarded to the Aignostics Portal. [default: no-onboard-to-aignostics-portal]
272272
* `--help`: Show this message and exit.
273273

noxfile.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -408,8 +408,8 @@ def _generate_openapi_schemas(session: nox.Session) -> None:
408408
Path("docs/source/_static").mkdir(parents=True, exist_ok=True)
409409

410410
formats = {
411-
"yaml": {"ext": "yaml", "args": ["--output-format=yaml", "--env", "AIGNOSTICS_LOG_CONSOLE_ENABLED=false"]},
412-
"json": {"ext": "json", "args": ["--output-format=json", "--env", "AIGNOSTICS_LOG_CONSOLE_ENABLED=false"]},
411+
"yaml": {"ext": "yaml", "args": ["--output-format=yaml", "--env", "AIGNOSTICS_LOG_STDERR_ENABLED=false"]},
412+
"json": {"ext": "json", "args": ["--output-format=json", "--env", "AIGNOSTICS_LOG_STDERR_ENABLED=false"]},
413413
}
414414

415415
for version in API_VERSIONS:
@@ -443,7 +443,7 @@ def _generate_sdk_metadata_schema(session: nox.Session, schema_type: str) -> Non
443443
f"{schema_type}-metadata-schema",
444444
"--no-pretty",
445445
"--env",
446-
"AIGNOSTICS_LOG_CONSOLE_ENABLED=false",
446+
"AIGNOSTICS_LOG_STDERR_ENABLED=false",
447447
stdout=f,
448448
external=True,
449449
)
@@ -935,7 +935,7 @@ def setup(session: nox.Session) -> None:
935935
session.run("git", "add", ".", external=True)
936936
try:
937937
session.run("pre-commit", external=True)
938-
except Exception: # noqa: BLE001
938+
except Exception:
939939
session.log("pre-commit run failed, continuing anyway")
940940
session.run("git", "add", ".", external=True)
941941

pyproject.toml

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -74,45 +74,37 @@ requires-python = ">=3.11, <3.14"
7474

7575
dependencies = [
7676
# From Template
77-
"fastapi[standard,all]>=0.120.4,<1",
77+
"fastapi[standard,all]>=0.121.1,<1",
7878
"humanize>=4.14.0,<5",
79-
"logfire[system-metrics]>=4.14.2,<5",
8079
"nicegui[native]>=3.1.0,<3.2.0", # Regression in 3.2.0
81-
"opentelemetry-instrumentation-fastapi>=0.53b0,<1",
82-
"opentelemetry-instrumentation-httpx>=0.53b0,<1",
83-
"opentelemetry-instrumentation-jinja2>=0.53b0,<1",
84-
"opentelemetry-instrumentation-requests>=0.53b0,<1",
85-
"opentelemetry-instrumentation-sqlite3>=0.53b0,<1",
86-
"opentelemetry-instrumentation-tornado>=0.53b0,<1",
87-
"opentelemetry-instrumentation-urllib>=0.53b0,<1",
88-
"opentelemetry-instrumentation-urllib3>=0.53b0,<1",
8980
"packaging>=25.0,<26",
9081
"platformdirs>=4.5.0,<5",
91-
"psutil>=7.1.2,<8",
92-
"pydantic-settings>=2.11.0,<3",
82+
"psutil>=7.1.3,<8",
83+
"pydantic-settings>=2.12.0,<3",
9384
"pywin32>=310,<311 ; sys_platform == 'win32'",
9485
"pyyaml>=6.0.3,<7",
95-
"sentry-sdk>=2.43.0,<3",
86+
"sentry-sdk>=2.44.0,<3",
9687
"typer>=0.20.0,<1",
9788
"uptime>=3.0.1,<4",
9889
# Custom
9990
"aiopath>=0.6.11,<1",
100-
"boto3>=1.40.64,<2",
101-
"certifi>=2025.10.5,<2026",
91+
"boto3>=1.40.61,<2",
92+
"certifi>=2025.11.12,<2026",
10293
"defusedxml>=0.7.1",
10394
"dicom-validator>=0.7.3,<1",
10495
"dicomweb-client[gcp]>=0.59.3,<1",
10596
"duckdb>=0.10.0,<=1.4.1",
10697
"fastparquet>=2024.11.0,<2025",
107-
"google-cloud-storage>=3.4.1,<4",
98+
"google-cloud-storage>=3.5.0,<4",
10899
"google-crc32c>=1.7.1,<2",
109100
"highdicom>=0.26.1,<1",
110101
"html-sanitizer>=2.6.0,<3",
111102
"httpx>=0.28.1,<1",
112-
"idc-index-data==22.0.2",
103+
"idc-index-data==22.1.2",
113104
"ijson>=3.4.0.post0,<4",
114105
"jsf>=0.11.2,<1",
115106
"jsonschema[format-nongpl]>=4.25.1,<5",
107+
"loguru>=0.7.3",
116108
"openslide-bin>=4.0.0.8,<5",
117109
"openslide-python>=1.4.2,<2",
118110
"pandas>=2.3.3,<3",
@@ -138,8 +130,8 @@ pyinstaller = ["pyinstaller>=6.14.0,<7"]
138130
jupyter = ["jupyter>=1.1.1,<2"]
139131
marimo = [
140132
"cloudpathlib>=0.23.0,<1",
141-
"ipython>=9.6.0,<10",
142-
"marimo>=0.17.2,<1",
133+
"ipython>=9.7.0,<10",
134+
"marimo>=0.17.7,<1",
143135
"matplotlib>=3.10.7,<4",
144136
"shapely>=2.1.0,<3",
145137
]
@@ -154,15 +146,15 @@ dev = [
154146
"furo>=2025.9.25,<2026",
155147
"git-cliff>=2.10.1,<3",
156148
"mypy>=1.18.2,<2",
157-
"nox[uv]>=2025.10.16,<2026",
149+
"nox[uv]>=2025.11.12,<2026",
158150
"pip-audit>=2.9.0,<3",
159151
"pip-licenses @ git+https://github.com/neXenio/pip-licenses.git@master", # https://github.com/raimon49/pip-licenses/pull/224
160-
"pre-commit>=4.3.0,<5",
152+
"pre-commit>=4.4.0,<5",
161153
"pyright>=1.1.406,<1.1.407", # Regression in 1.1.407, see https://github.com/microsoft/pyright/issues/11060
162154
"pytest>=8.4.2,<9",
163-
"pytest-asyncio>=1.2.0,<2",
155+
"pytest-asyncio>=1.3.0,<2",
164156
"pytest-cov>=7.0.0,<8",
165-
"pytest-docker>=3.2.3,<4",
157+
"pytest-docker>=3.2.5,<4",
166158
"pytest-durations>=1.6.1,<2",
167159
"pytest-env>=1.2.0,<2",
168160
"pytest-md-report>=0.7.0,<1",
@@ -173,7 +165,7 @@ dev = [
173165
"pytest-timeout>=2.4.0,<3",
174166
"pytest-watcher>=0.4.3,<1",
175167
"pytest-xdist[psutil]>=3.8.0,<4",
176-
"ruff>=0.14.3,<1",
168+
"ruff>=0.14.4,<1",
177169
"scalene>=1.5.55,<2",
178170
"sphinx>=8.2.3,<9",
179171
"sphinx-autobuild>=2025.8.25,<2026",
@@ -275,6 +267,7 @@ ignore = [
275267
"PTH123", # use of open to be replaced with Path.open,
276268
"T201", # Remove `print`
277269
"INP001", # Checks for packages that are missing an __init__.py file.
270+
"BLE001", # Accept for now TODO(Helmut): Add proper exception handling later
278271
]
279272

280273
[tool.ruff.lint.per-file-ignores]

0 commit comments

Comments
 (0)