@@ -8,8 +8,7 @@ description = "PySide6-based GUI to run real time DeepLabCut experiments"
88readme = " README.md"
99keywords = [ " deep learning" , " deeplabcut" , " gui" , " pose estimation" , " real-time" ]
1010license-files = [ " LICENSE" ]
11- authors = [ { name = " A. & M. Mathis Labs" , email = " adim@deeplabcut.org" } ]
12- requires-python = " >=3.10,<3.13"
11+ requires-python = " >=3.10" # don' forget to update tool.pyproject-fmt if this changes
1312classifiers = [
1413 " Development Status :: 4 - Beta" ,
1514 " Environment :: X11 Applications :: Qt" ,
@@ -34,120 +33,93 @@ dependencies = [
3433 " qdarkstyle" ,
3534 " vidgear[core]" ,
3635]
37- optional-dependencies.all = [ " harvesters" , " pypylon" ]
38- optional-dependencies.basler = [ " pypylon" ]
39- optional-dependencies.dev = [
36+ [[project .authors ]]
37+ name = " A. & M. Mathis Labs"
38+ email = " adim@deeplabcut.org"
39+ [project .optional-dependencies ]
40+ all = [ " harvesters" , " pypylon" ]
41+ basler = [ " pypylon" ]
42+ dev = [
4043 " hypothesis>=6" ,
4144 " pre-commit" ,
4245 " pytest>=7" ,
4346 " pytest-cov>=4" ,
4447 " pytest-mock>=3.10" ,
4548 " pytest-qt>=4.2" ,
4649]
47- optional-dependencies. gentl = [ " harvesters" ]
48- optional-dependencies. pytorch = [
50+ gentl = [ " harvesters" ]
51+ pytorch = [
4952 " deeplabcut-live[pytorch]>=2" , # this includes timm and scipy
5053]
51- <<<<<<< cy/upgrade-gentl-backend
52- dev = [
53- " pytest>=7.0" ,
54- " pytest-cov>=4.0" ,
55- " pytest-mock>=3.10" ,
56- " pytest-qt>=4.2" ,
57- " pytest-timeout>=2.0" ,
58- " pre-commit" ,
59- " hypothesis>=6.0" ,
60- ]
6154test = [
62- " pytest>=7.0" ,
63- " pytest-cov>=4.0" ,
64- " pytest-mock>=3.10" ,
65- " pytest-qt>=4.2" ,
66- " pytest-timeout>=2.0" ,
67- " hypothesis>=6.0" ,
68- =======
69- optional-dependencies.test = [
7055 " hypothesis>=6" ,
7156 " pytest>=7" ,
7257 " pytest-cov>=4" ,
7358 " pytest-mock>=3.10" ,
7459 " pytest-qt>=4.2" ,
7560]
76- optional-dependencies. tf = [
61+ tf = [
7762 " deeplabcut-live[tf]>=2" ,
78- >>>>>>> cy/pre-release-fixes-2.0
7963]
80- urls."Bug Tracker" = " https://github.com/DeepLabCut/DeepLabCut-live-GUI/issues"
81- urls.Documentation = " https://github.com/DeepLabCut/DeepLabCut-live-GUI"
82- urls.Homepage = " https://github.com/DeepLabCut/DeepLabCut-live-GUI"
83- urls.Repository = " https://github.com/DeepLabCut/DeepLabCut-live-GUI"
84- scripts.dlclivegui = " dlclivegui:main"
64+ [project .scripts ]
65+ dlclivegui = " dlclivegui:main"
66+ [project .urls ]
67+ "Bug Tracker" = " https://github.com/DeepLabCut/DeepLabCut-live-GUI/issues"
68+ Documentation = " https://github.com/DeepLabCut/DeepLabCut-live-GUI"
69+ Homepage = " https://github.com/DeepLabCut/DeepLabCut-live-GUI"
70+ Repository = " https://github.com/DeepLabCut/DeepLabCut-live-GUI"
8571
86- [tool .setuptools ]
8772# [tool.setuptools]
88-
8973# include-package-data = true
9074
91- # This is more granular and explicit than include-package-data,
92-
93- # which can be too broad and include unwanted files.
94-
95- package-data."dlclivegui.assets" = [ " *.png" ]
96- packages.find.where = [ " ." ]
97- packages.find.include = [ " dlclivegui*" ]
98- packages.find.exclude = [ " tests*" , " docs*" ]
75+ [tool .setuptools .package-data ]
76+ "dlclivegui.assets" = [ " *.png" ]
77+ [tool .setuptools .packages ]
78+ find.where = [ " ." ]
79+ find.include = [ " dlclivegui*" ]
80+ find.exclude = [ " tests*" , " docs*" ]
9981
10082[tool .ruff ]
10183target-version = " py310"
10284line-length = 120
10385fix = true
104- lint.select = [ " B" , " E" , " F" , " I" , " UP" ]
105- lint.ignore = [ " E741" ]
86+ [tool .ruff .lint ]
87+ select = [ " B" , " E" , " F" , " I" , " UP" ]
88+ ignore = [ " E741" ]
10689
10790[tool .pyproject-fmt ]
108- generate-python-classifiers = false
91+ max_supported_python = " 3.12"
92+ generate_python_version_classifiers = true
93+ # Avoid collapsing tables to field.key = value format (less readable)
94+ table_format = " long"
10995
11096[tool .pytest ]
111- ini_options.testpaths = [ " tests" ]
112- ini_options.python_files = [ " test_*.py" ]
113- ini_options.python_classes = [ " Test*" ]
114- ini_options.python_functions = [ " test_*" ]
115- ini_options.addopts = [
97+ [tool .pytest .ini_options ]
98+ testpaths = [ " tests" ]
99+ python_files = [ " test_*.py" ]
100+ python_classes = [ " Test*" ]
101+ python_functions = [ " test_*" ]
102+ addopts = [
116103 " --strict-markers" ,
117104 " --strict-config" ,
118105 " --disable-warnings" ,
119106 # "--maxfail=1",
120107 " -ra" ,
121108 " -q" ,
122109]
123- <<<<<<< cy/upgrade-gentl-backend
124110markers = [
125- " unit: Unit tests for individual components" ,
126- " integration: Integration tests for component interaction" ,
127- " functional: Functional tests for end-to-end workflows" ,
128- " hardware: Tests that require specific hardware, notable camera backends" ,
129- # "slow: Tests that take a long time to run",
130- " gui: Tests that require GUI interaction" ,
131- " timeout: Test timeout in seconds (pytest-timeout)" ,
132- =======
133- ini_options.markers = [
134111 " unit: Unit tests for individual components" ,
135112 " integration: Integration tests for component interaction" ,
136113 " functional: Functional tests for end-to-end workflows" ,
137114 " hardware: Tests that require specific hardware, notable camera backends" ,
138115 # "slow: Tests that take a long time to run",
139116 " gui: Tests that require GUI interaction" ,
140- >>>>>>> cy/pre-release-fixes-2.0
117+ " timeout: Test timeout in seconds (pytest-timeout) " ,
141118]
142119
143120[tool .coverage ]
144- run.branch = true
145- run.omit = [
146- "*/__pycache__/*",
147- "*/site-packages/*",
148- ]
149- run.source = [ " dlclivegui" , " tests" ]
150- report.exclude_lines = [
121+ [tool .coverage .report ]
122+ exclude_lines = [
151123 " @abstract" ,
152124 " def __repr__" ,
153125 " if __name__ == .__main__.:" ,
@@ -156,6 +128,13 @@ report.exclude_lines = [
156128 " raise AssertionError" ,
157129 " raise NotImplementedError" ,
158130]
159- report. omit = [
131+ omit = [
160132 " tests/*" ,
161133]
134+ [tool .coverage .run ]
135+ branch = true
136+ omit = [
137+ " */__pycache__/*" ,
138+ " */site-packages/*" ,
139+ ]
140+ source = [ " dlclivegui" , " tests" ]
0 commit comments