@@ -58,6 +58,7 @@ dev = [
5858 " ty~=0.0.0" ,
5959 " types-colorama<0.5.0" ,
6060 " werkzeug<4.0.0" , # Werkzeug is used by pytest-httpserver
61+ " datamodel-code-generator[http,ruff]<1.0.0" ,
6162]
6263
6364[tool .hatch .build .targets .wheel ]
@@ -138,6 +139,10 @@ indent-style = "space"
138139 " N999" , # Invalid module name
139140 " T201" , # print found
140141]
142+ "src/apify_client/_models.py" = [
143+ " D" , # Everything from the pydocstyle
144+ " E501" , # Line too long
145+ ]
141146
142147[tool .ruff .lint .flake8-quotes ]
143148docstring-quotes = " double"
@@ -178,3 +183,21 @@ exclude_lines = ["pragma: no cover", "if TYPE_CHECKING:", "assert_never()"]
178183
179184[tool .ipdb ]
180185context = 7
186+
187+ # https://koxudaxi.github.io/datamodel-code-generator/
188+ [tool .datamodel-codegen ]
189+ url = " https://docs.apify.com/api/openapi.json"
190+ input_file_type = " openapi"
191+ output = " src/apify_client/_models.py"
192+ target_python_version = " 3.10"
193+ output_model_type = " pydantic_v2.BaseModel"
194+ use_schema_description = true
195+ use_field_description = true
196+ use_union_operator = true
197+ capitalise_enum_members = true
198+ collapse_root_models = true
199+ set_default_enum_member = true
200+ use_annotated = true
201+ wrap_string_literal = true
202+ snake_case_field = true
203+ formatters = [" ruff-check" , " ruff-format" ]
0 commit comments