openadmin-dev 0.7.12__tar.gz → 0.7.14__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/PKG-INFO +1 -1
  2. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/fastapi/utils.py +39 -3
  3. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/pyproject.toml +1 -1
  4. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/uv.lock +231 -176
  5. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/ISSUE_TEMPLATE/bug.md +0 -0
  6. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/ISSUE_TEMPLATE/chore.md +0 -0
  7. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  8. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/actions/branch-name/action.yml +0 -0
  9. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/actions/dependency-cves/action.yml +0 -0
  10. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/actions/format/action.yml +0 -0
  11. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/actions/license/action.yml +0 -0
  12. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/actions/lint/action.yml +0 -0
  13. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/actions/security/action.yml +0 -0
  14. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/actions/spell-check/action.yml +0 -0
  15. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/actions/test/action.yml +0 -0
  16. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/actions/typecheck/action.yml +0 -0
  17. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/actions/unused-code/action.yml +0 -0
  18. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/workflows/ci.yml +0 -0
  19. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.github/workflows/publish.yml +0 -0
  20. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.gitignore +0 -0
  21. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/.python-version +0 -0
  22. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/LICENSE +0 -0
  23. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/LICENSES/AGPL-3.0-or-later.txt +0 -0
  24. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/Makefile +0 -0
  25. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/README.md +0 -0
  26. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/REUSE.toml +0 -0
  27. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/docs/assets/logo.png +0 -0
  28. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/__init__.py +0 -0
  29. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/__init__.py +0 -0
  30. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/analytics.py +0 -0
  31. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/authors.py +0 -0
  32. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/books.py +0 -0
  33. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/control_panel.py +0 -0
  34. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/docs.py +0 -0
  35. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/genres.py +0 -0
  36. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/health.py +0 -0
  37. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/overview.py +0 -0
  38. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/publishers.py +0 -0
  39. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/reports.py +0 -0
  40. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/tags.py +0 -0
  41. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/admin/weekdays.py +0 -0
  42. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/lib/__init__.py +0 -0
  43. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/lib/database.py +0 -0
  44. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/lib/lifespan.py +0 -0
  45. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/lib/models.py +0 -0
  46. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/lib/seed.py +0 -0
  47. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/examples/main.py +0 -0
  48. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/__client__/assets/index-Cmhau8Lc.js +0 -0
  49. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/__client__/assets/index-DfxwI1Du.css +0 -0
  50. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/__client__/favicon.svg +0 -0
  51. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/__client__/icons.svg +0 -0
  52. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/__client__/index.html +0 -0
  53. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/fastapi/__init__.py +0 -0
  54. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/fastapi/admin_page.py +0 -0
  55. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/fastapi/admin_panel.py +0 -0
  56. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/fastapi/counter.py +0 -0
  57. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/fastapi/deps.py +0 -0
  58. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/fastapi/exc_handler.py +0 -0
  59. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/fastapi/field_config.py +0 -0
  60. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/fastapi/req.py +0 -0
  61. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/__init__.py +0 -0
  62. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/action.py +0 -0
  63. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/area_chart.py +0 -0
  64. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/bar_chart.py +0 -0
  65. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/colors.py +0 -0
  66. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/component.py +0 -0
  67. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/error.py +0 -0
  68. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/form.py +0 -0
  69. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/http_methods.py +0 -0
  70. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/icons.py +0 -0
  71. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/json_schema.py +0 -0
  72. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/line_chart.py +0 -0
  73. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/markdown.py +0 -0
  74. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/page.py +0 -0
  75. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/pie_chart.py +0 -0
  76. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/section.py +0 -0
  77. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/spec.py +0 -0
  78. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/stat.py +0 -0
  79. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/openadmin/spec/table.py +0 -0
  80. {openadmin_dev-0.7.12 → openadmin_dev-0.7.14}/tests/test_hello.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openadmin-dev
3
- Version: 0.7.12
3
+ Version: 0.7.14
4
4
  Summary: Add your description here
5
5
  Project-URL: Homepage, https://github.com/openadmin-team/openadmin-py
6
6
  Project-URL: Issues, https://github.com/openadmin-team/openadmin-py/issues
@@ -4,13 +4,14 @@
4
4
 
5
5
  import re
6
6
  from collections.abc import Callable
7
+ from dataclasses import dataclass
7
8
  from typing import Annotated, Any, cast
8
9
 
9
10
  from pydantic import BaseModel, TypeAdapter, create_model
10
11
 
11
12
  from fastapi import params
12
13
  from fastapi.dependencies.models import Dependant
13
- from fastapi.dependencies.utils import get_dependant, get_flat_dependant
14
+ from fastapi.dependencies.utils import get_dependant
14
15
  from openadmin import spec
15
16
 
16
17
  from . import counter
@@ -42,11 +43,46 @@ def get_body_params(func: Callable) -> spec.JsonSchema | None:
42
43
  return _unwrappable_schema(fields)
43
44
 
44
45
 
45
- def _get_flat_dependant(func: Callable) -> Dependant:
46
+ @dataclass
47
+ class _FlatParams:
48
+ """Params pulled from a `Dependant` and all of its sub-dependencies.
49
+
50
+ FastAPI's own flattening helper (`get_flat_dependant`) has been renamed
51
+ or removed across versions, so it isn't relied on here -- this walks the
52
+ dependency tree the same way it used to, using only `Dependant.call`,
53
+ `.dependencies`, `.query_params` and `.body_params`, which have stayed
54
+ stable across FastAPI versions.
55
+ """
56
+
57
+ query_params: list[Any]
58
+ body_params: list[Any]
59
+
60
+
61
+ def _get_flat_dependant(func: Callable) -> _FlatParams:
46
62
  """Resolve `func`'s params the same way FastAPI does, including params
47
63
  pulled in through `Depends(...)` (e.g. `PageDep`, `SearchQueryDep`)."""
48
64
  dependant = get_dependant(path="", call=func)
49
- return get_flat_dependant(dependant, skip_repeats=True)
65
+ return _flatten_params(dependant)
66
+
67
+
68
+ def _flatten_params(
69
+ dependant: Dependant, visited: set[Callable | None] | None = None
70
+ ) -> _FlatParams:
71
+ if visited is None:
72
+ visited = set()
73
+ visited.add(dependant.call)
74
+
75
+ flat = _FlatParams(
76
+ query_params=list(dependant.query_params),
77
+ body_params=list(dependant.body_params),
78
+ )
79
+ for sub_dependant in dependant.dependencies:
80
+ if sub_dependant.call in visited:
81
+ continue
82
+ flat_sub = _flatten_params(sub_dependant, visited)
83
+ flat.query_params.extend(flat_sub.query_params)
84
+ flat.body_params.extend(flat_sub.body_params)
85
+ return flat
50
86
 
51
87
 
52
88
  def _is_form_field(field: Any) -> bool:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "openadmin-dev"
3
- version = "0.7.12"
3
+ version = "0.7.14"
4
4
  description = "Add your description here"
5
5
  authors = [
6
6
  { name="Mykyta Kasianenko", email="mykytakasianenko@gmail.com" },