2424
2525[project ]
2626name = " resource-catalogue-fastapi"
27- dynamic = [ " version " ]
27+ version = " 0.0.0 "
2828description = " A FastApi deployment to handle requests to update the resource catalogue"
2929readme = " README.md"
30-
31- # Our target version is Python 3.13.
3230requires-python = " >=3.13,<3.14"
33-
3431license = {file = " LICENSE" }
35-
36- # This should be your name or the name of the organization who originally
37- # authored the project, and a valid email address corresponding to the name
38- # listed.
3932authors = [
4033 {name = " Telespazio UK Ltd" , email = " alex.palmer@telespazio.com" }
4134]
42-
4335maintainers = [
4436 {name = " Telespazio UK Ltd" , email = " alex.palmer@telespazio.com" }
4537]
46-
47- # Classifiers help users find your project by categorizing it.
48- #
49- # For a list of valid classifiers, see https://pypi.org/classifiers/
5038classifiers = [
51- # How mature is this project? Common values are
52- # 3 - Alpha
53- # 4 - Beta
54- # 5 - Production/Stable
5539 " Development Status :: 3 - Alpha" ,
56-
57- # Indicate who your project is intended for
5840 " Intended Audience :: Science/Research" ,
5941 " Intended Audience :: Developers" ,
60-
61- # CHANGEME Pick your license as you wish
6242 " License :: OSI Approved :: Apache Software License" ,
63- # "License :: Other/Proprietary License",
64-
6543 " Programming Language :: Python :: 3" ,
66- " Programming Language :: Python :: 3.11 " ,
44+ " Programming Language :: Python :: 3.13 " ,
6745 " Programming Language :: Python :: 3 :: Only" ,
6846]
69-
70- # This field lists other packages that your project depends on to run.
71- # Any package you put here will be installed by pip when your project is
72- # installed, so they must be valid existing projects.
73- #
74- # For an analysis of this field vs pip's requirements files see:
75- # https://packaging.python.org/discussions/install-requires-vs-requirements/
7647dependencies = [
7748 " fastapi" ,
7849 " uvicorn" ,
@@ -86,95 +57,61 @@ dependencies = [
8657 " kubernetes" ,
8758]
8859
89- [dependency-groups ] # Optional
60+ [dependency-groups ]
9061dev = [
62+ " pre-commit" ,
63+ " pyright" ,
9164 " pytest" ,
92- " pytest-xdist" ,
9365 " pytest-mock" ,
9466 " pytest-watcher" ,
95- " black " ,
67+ " pytest-xdist " ,
9668 " ruff" ,
97- " isort" ,
98- " pre-commit" ,
69+ " validate-pyproject" ,
9970 " httpx" ,
10071 " requests-mock" ,
101- " validate-pyproject>=0.24.1" ,
10272]
10373
10474[tool .uv ]
105- constraint-dependencies = [ " urllib3>=2.6.0 " ]
75+ package = true
10676
107- # List URLs that are relevant to your project
108- #
109- # This field corresponds to the "Project-URL" and "Home-Page" metadata fields:
110- # https://packaging.python.org/specifications/core-metadata/#project-url-multiple-use
111- # https://packaging.python.org/specifications/core-metadata/#home-page-optional
112- #
113- # Examples listed include a pattern for specifying where the package tracks
114- # issues, where the source is hosted, where to say thanks to the package
115- # maintainers, and where to support the project financially. The key is
116- # what's used to render the link text on PyPI.
117- [project .urls ] # Optional
118- homepage = " https://github.com/UKEODHP/"
119- repository = " CHANGEME-https://github.com/UKEODHP/..."
120- changelog = " CHANGEME-https://github.com/UKEODHP/.../master/CHANGELOG.md"
77+ [project .urls ]
78+ homepage = " https://github.com/EO-DataHub/resource-catalogue-fastapi"
79+ repository = " https://github.com/EO-DataHub/resource-catalogue-fastapi"
12180
12281[build-system ]
123- # These are the assumed default build requirements from pip:
124- # https://pip.pypa.io/en/stable/reference/pip/#pep-517-and-518-support
125- requires = [" setuptools>=69.0.0" , " wheel" , " setuptools-git-versioning>=2.0,<3" ]
126- build-backend = " setuptools.build_meta"
82+ requires = [" hatchling" ]
83+ build-backend = " hatchling.build"
12784
12885[tool .pytest .ini_options ]
129- pythonpath = [" . " ]
86+ addopts = [" --import-mode=importlib " ]
13087markers = [
13188 " integrationtest: Integration test"
13289]
13390
134- [tool .setuptools ]
135- packages = []
136-
137- [tool .setuptools-git-versioning ]
138- enabled = true
139-
140- [tool .black ]
141- line-length = 100
142- target-version = [' py311' ]
143-
14491[tool .ruff ]
145- line-length = 110
146- target-version = " py311"
147- select = [" E" , " F" , " B" , " W" ]
148-
149- exclude = [
150- " .bzr" ,
151- " .direnv" ,
152- " .eggs" ,
153- " .git" ,
154- " .git-rewrite" ,
155- " .hg" ,
156- " .mypy_cache" ,
157- " .nox" ,
158- " .pants.d" ,
159- " .pytype" ,
160- " .ruff_cache" ,
161- " .svn" ,
162- " .tox" ,
163- " .venv" ,
164- " __pypackages__" ,
165- " _build" ,
166- " buck-out" ,
167- " build" ,
168- " dist" ,
169- " node_modules" ,
170- " venv" ,
92+ line-length = 119
93+
94+ [tool .ruff .lint ]
95+ select = [
96+ " E" , # Pycodestyle errors
97+ " W" , # Pycodestyle warnings
98+ " F" , # Pyflakes
99+ " I" , # isort
100+ " FAST" , # FastAPI
101+ " RUF" , # RUF-specific rules
102+ " SIM" , # Simplifications
103+ " B" , # Bugbear
104+ " ANN" , # Annotations
105+ " PLC" , # Pylint convention
106+ " PLE" , # Pylint errors
107+ " UP" , # pyupgrade
108+ " FURB" , # refurb
109+ " PT" , # pytest
110+ ]
111+ ignore = [
112+ " E501" , # line too long
113+ " SIM108" , # ternary operator
114+ " SIM103" , # return bool directly
115+ " B008" , # function call in default argument (incompatible with FastAPI)
116+ " ANN401" , # dynamically typed Any (needed for FastAPI Depends)
171117]
172-
173- [tool .pylint .'MESSAGES CONTROL' ]
174- disable = '''
175- line-too-long,
176- missing-class-docstring,
177- too-many-locals,
178- too-many-instance-attributes,
179- logging-fstring-interpolation,
180- '''
0 commit comments