@@ -10,7 +10,7 @@ dependencies = [
1010 " ecdsa" ,
1111 " httpx" ,
1212 " ms_cv" ,
13- " pydantic" ,
13+ " pydantic==2.* " ,
1414]
1515requires-python = " >=3.8"
1616readme = " README.md"
@@ -21,12 +21,11 @@ classifiers = [
2121 " Intended Audience :: Developers" ,
2222 " License :: OSI Approved :: MIT License" ,
2323 " Programming Language :: Python :: 3" ,
24+ " Programming Language :: Python :: 3.8" ,
25+ " Programming Language :: Python :: 3.9" ,
2426 " Programming Language :: Python :: 3.10" ,
2527 " Programming Language :: Python :: 3.11" ,
2628 " Programming Language :: Python :: 3.12" ,
27- " Programming Language :: Python :: 3.7" ,
28- " Programming Language :: Python :: 3.8" ,
29- " Programming Language :: Python :: 3.9" ,
3029 " Topic :: Software Development :: Libraries :: Python Modules" ,
3130]
3231
@@ -35,19 +34,28 @@ Homepage = "https://github.com/OpenXbox/xbox-webapi-python"
3534
3635[project .optional-dependencies ]
3736dev = [
37+ # Tagging releases
3838 " bump2version" ,
39+ # Testing
3940 " coverage" ,
40- " flake8" ,
41- " pip" ,
4241 " pytest" ,
4342 " pytest-asyncio" ,
4443 " pytest-cov" ,
4544 " pytest-runner" ,
4645 " respx" ,
47- " tox " ,
46+ # Packaging
4847 " twine" ,
4948 " watchdog" ,
5049 " wheel" ,
50+ # Pre-commit / Linting
51+ " ruff==0.1.6" ,
52+ " pre-commit==3.5.0" ,
53+ " pyupgrade==3.15.0" ,
54+ " black==23.11.0" ,
55+ # "flake8-docstrings==1.5.0",
56+ " pydocstyle==6.1.1" ,
57+ " bandit==1.7.5" ,
58+ " isort==5.12.0" ,
5159]
5260docs = [
5361 " Sphinx" ,
@@ -62,13 +70,83 @@ xbox-friends = "xbox.webapi.scripts.friends:main"
6270xbox-searchlive = " xbox.webapi.scripts.search:main"
6371xbox-xal = " xbox.webapi.scripts.xal:main"
6472
73+ [tool .ruff ]
74+ # Exclude a variety of commonly ignored directories.
75+ exclude = [
76+ " .bzr" ,
77+ " .direnv" ,
78+ " .eggs" ,
79+ " .git" ,
80+ " .git-rewrite" ,
81+ " .hg" ,
82+ " .mypy_cache" ,
83+ " .nox" ,
84+ " .pants.d" ,
85+ " .pytype" ,
86+ " .ruff_cache" ,
87+ " .svn" ,
88+ " .tox" ,
89+ " .venv" ,
90+ " __pypackages__" ,
91+ " _build" ,
92+ " buck-out" ,
93+ " build" ,
94+ " dist" ,
95+ " node_modules" ,
96+ " venv" ,
97+ ]
98+
99+ # Same as Black.
100+ line-length = 88
101+ indent-width = 4
102+
103+ # Assume Python 3.8
104+ target-version = " py38"
105+
106+ [tool .ruff .lint ]
107+ select = [" E4" , " E7" , " E9" , " F" ]
108+ ignore = []
109+
110+ fixable = [" ALL" ]
111+ unfixable = []
112+ # Allow unused variables when underscore-prefixed.
113+ dummy-variable-rgx = " ^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
114+
115+ [tool .ruff .format ]
116+ # Like Black, use double quotes for strings.
117+ quote-style = " double"
118+ # Like Black, indent with spaces, rather than tabs.
119+ indent-style = " space"
120+ # Like Black, respect magic trailing commas.
121+ skip-magic-trailing-comma = false
122+ # Like Black, automatically detect the appropriate line ending.
123+ line-ending = " auto"
124+
125+ [tool .bandit ]
126+ exclude_dirs = [" tests" ]
127+ tests = [
128+ " B108" ,
129+ " B306" ,
130+ " B307" ,
131+ " B313" ,
132+ " B314" ,
133+ " B315" ,
134+ " B316" ,
135+ " B317" ,
136+ " B318" ,
137+ " B319" ,
138+ " B320" ,
139+ " B602" ,
140+ " B604"
141+ ]
142+
65143[tool .black ]
66144target-version = [" py37" , " py38" , " py39" , " py310" , " py311" ]
67145exclude = ' generated'
68146
69147[tool .setuptools .packages .find ]
70148where = [" ." ]
71- include = [" xbox.webapi" ]
149+ include = [" xbox.webapi.* " ]
72150
73151[build-system ]
74152requires = [" setuptools>=61" , " wheel" ]
0 commit comments