-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathpyproject.toml
More file actions
130 lines (114 loc) · 4.75 KB
/
Copy pathpyproject.toml
File metadata and controls
130 lines (114 loc) · 4.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
[build-system]
requires = ["wheel", "setuptools"]
[project]
name = "werk24"
version = "2.6.0"
description = "AI-powered platform for extracting and analyzing data from technical drawings / CAD drawings to enhance manufacturing workflows."
readme = { file = "README.md", content-type = "text/markdown" }
license = { file = "LICENSE.txt" }
authors = [{ name = "W24 Service GmbH", email = "info@werk24.io" }]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Information Technology",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Software Development",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Internet",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Typing :: Typed",
"Natural Language :: English",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Scientific/Engineering :: Information Analysis",
]
requires-python = ">=3.10"
dependencies = [
# aiohttp: Minimum 3.13.3 includes security fixes for CVE-2025-69223 (zip bomb DoS),
# CVE-2025-69227 (infinite loop DoS), CVE-2025-69228 (memory exhaustion), CVE-2025-69229 (blocking CPU DoS)
# No upper bound - follows SemVer, backward compatible within major version
"aiohttp>=3.13.3",
# certifi: Minimum 2024.12.14 includes latest CA certificate bundle for secure TLS connections
# No upper bound - certificate bundle updates are backward compatible
"certifi>=2024.12.14",
# cryptography: Minimum 46.0.5 includes fix for CVE-2026-26007 (elliptic curve subgroup validation)
# and earlier fixes for CVE-2024-26130 (NULL pointer dereference with pkcs12)
# No upper bound - follows SemVer, removing restrictive constraint to prevent dependency conflicts
"cryptography>=46.0.5",
# packaging: Minimum 24.2 provides required version parsing functionality
# No upper bound - stable API, backward compatible
"packaging>=24.2",
# pint: Minimum 0.24 provides unit conversion features used in measurement processing
# Version 0.24.4+ fixes dataclass issues; 0.25+ requires Python 3.11+
# Use version markers to allow newer versions on Python 3.11+
"pint>=0.24.4,<0.25; python_version<'3.11'",
"pint>=0.24.4; python_version>='3.11'",
# pydantic-extra-types: Minimum 2.9.0 for Python 3.14 compatibility (PEP 649 deferred annotations)
# No upper bound - follows SemVer, compatible with pydantic 2.x and 3.x
"pydantic-extra-types>=2.9.0",
# pydantic: Minimum 2.12.0 required for Python 3.14 compatibility (PEP 649 deferred annotations)
# No upper bound - follows SemVer, allows compatibility with both 2.x and 3.x
"pydantic>=2.12.0",
# pydantic-settings: Minimum 2.7.0 for Python 3.14 compatibility (Pydantic 2.12+ support)
# No upper bound - follows SemVer
"pydantic-settings>=2.7.0",
# python-dotenv: Minimum 1.0.0 provides environment variable loading functionality
# No upper bound - stable API, backward compatible
"python-dotenv>=1.0.0",
# typer: Minimum 0.15.0 provides CLI framework features
# No upper bound - follows SemVer
"typer>=0.15.0",
# websockets: Minimum 14.2 includes performance improvements and bug fixes
# No upper bound - follows SemVer, removing restrictive constraint
"websockets>=14.2",
]
keywords = [
"technical-drawings",
"CAD",
"AI",
"additive-manufacturing",
"feasibility",
"PMI",
"sheet-rebranding",
"title-block",
"tolerance",
"thread",
"chamfer",
"GDT",
"surface-roughness",
"API",
"feature-extraction",
"digitization",
"manufacturing",
"computer-vision",
"supply-chain",
"automation",
]
[project.urls]
homepage = "https://werk24.io"
repository = "https://github.com/W24-Service-GmbH/werk24-python"
documentation = "https://werk24.io/docs"
changelog = "https://github.com/W24-Service-GmbH/werk24-python/releases"
[tool.setuptools.package-data]
werk24 = ["assets/*.png"]
[project.scripts]
werk24 = "werk24.cli.werk24:app"
[tool.pytest.ini_options]
asyncio_default_fixture_loop_scope = "function"
asyncio_mode = "auto"
markers = [
"integration: mark test as an integration test that interacts with real API",
"requires_api: mark test as requiring API credentials (W24TECHREAD_AUTH_TOKEN)",
"slow: mark test as slow (execution time > 10 seconds)",
"concurrent: mark test as testing concurrent behavior",
]