openadmin-dev 0.6.2__tar.gz → 0.6.3__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 (81) hide show
  1. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/PKG-INFO +1 -1
  2. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/admin/authors.py +3 -2
  3. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/__init__.py +3 -1
  4. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/stat.py +10 -1
  5. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/pyproject.toml +1 -1
  6. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/ISSUE_TEMPLATE/bug.md +0 -0
  7. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/ISSUE_TEMPLATE/chore.md +0 -0
  8. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  9. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/actions/branch-name/action.yml +0 -0
  10. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/actions/dependency-cves/action.yml +0 -0
  11. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/actions/format/action.yml +0 -0
  12. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/actions/license/action.yml +0 -0
  13. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/actions/lint/action.yml +0 -0
  14. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/actions/security/action.yml +0 -0
  15. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/actions/spell-check/action.yml +0 -0
  16. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/actions/test/action.yml +0 -0
  17. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/actions/typecheck/action.yml +0 -0
  18. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/actions/unused-code/action.yml +0 -0
  19. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/workflows/ci.yml +0 -0
  20. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.github/workflows/publish.yml +0 -0
  21. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.gitignore +0 -0
  22. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/.python-version +0 -0
  23. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/LICENSE +0 -0
  24. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/LICENSES/AGPL-3.0-or-later.txt +0 -0
  25. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/Makefile +0 -0
  26. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/README.md +0 -0
  27. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/REUSE.toml +0 -0
  28. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/docs/assets/logo.png +0 -0
  29. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/__init__.py +0 -0
  30. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/admin/__init__.py +0 -0
  31. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/admin/analytics.py +0 -0
  32. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/admin/books.py +0 -0
  33. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/admin/genres.py +0 -0
  34. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/admin/health.py +0 -0
  35. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/admin/overview.py +0 -0
  36. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/admin/publishers.py +0 -0
  37. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/admin/reports.py +0 -0
  38. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/admin/tags.py +0 -0
  39. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/lib/__init__.py +0 -0
  40. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/lib/database.py +0 -0
  41. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/lib/lifespan.py +0 -0
  42. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/lib/models.py +0 -0
  43. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/lib/seed.py +0 -0
  44. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/examples/main.py +0 -0
  45. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/__init__.py +0 -0
  46. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/action.py +0 -0
  47. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/admin_page.py +0 -0
  48. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/admin_panel.py +0 -0
  49. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/area_chart.py +0 -0
  50. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/bar_chart.py +0 -0
  51. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/component.py +0 -0
  52. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/counters.py +0 -0
  53. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/deps.py +0 -0
  54. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/form.py +0 -0
  55. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/line_chart.py +0 -0
  56. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/markdown.py +0 -0
  57. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/page_protocol.py +0 -0
  58. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/pagination_params.py +0 -0
  59. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/pie_chart.py +0 -0
  60. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/section.py +0 -0
  61. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/stat.py +0 -0
  62. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/table.py +0 -0
  63. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/fastapi/utils.py +0 -0
  64. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/action.py +0 -0
  65. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/area_chart.py +0 -0
  66. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/bar_chart.py +0 -0
  67. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/component.py +0 -0
  68. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/form.py +0 -0
  69. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/http_methods.py +0 -0
  70. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/icons.py +0 -0
  71. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/line_chart.py +0 -0
  72. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/markdown.py +0 -0
  73. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/page.py +0 -0
  74. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/pie_chart.py +0 -0
  75. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/property.py +0 -0
  76. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/property_type.py +0 -0
  77. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/section.py +0 -0
  78. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/spec.py +0 -0
  79. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/openadmin/spec/table.py +0 -0
  80. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/tests/test_hello.py +0 -0
  81. {openadmin_dev-0.6.2 → openadmin_dev-0.6.3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openadmin-dev
3
- Version: 0.6.2
3
+ Version: 0.6.3
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
@@ -5,6 +5,7 @@
5
5
  from pydantic import BaseModel
6
6
  from sqlalchemy import func, select
7
7
 
8
+ from openadmin import spec
8
9
  from openadmin.fastapi import AdminPage
9
10
  from openadmin.fastapi.deps import PageDep, SearchQueryDep
10
11
 
@@ -19,9 +20,9 @@ page = AdminPage(
19
20
 
20
21
 
21
22
  @page.stat("Total Authors")
22
- async def get_total_authors(session: AsyncSessionDep) -> int:
23
+ async def get_total_authors(session: AsyncSessionDep) -> spec.StatResponse:
23
24
  result = await session.execute(select(func.count(models.Author.id)))
24
- return result.scalar_one()
25
+ return {"value": result.scalar_one(), "icon": "sun"}
25
26
 
26
27
 
27
28
  @page.stat("Authors with Bio")
@@ -17,7 +17,7 @@ from .property import Property
17
17
  from .property_type import PropertyType
18
18
  from .section import Section
19
19
  from .spec import Spec
20
- from .stat import Stat
20
+ from .stat import Stat, StatResponse, StatValue
21
21
  from .table import Table
22
22
 
23
23
  __all__ = [
@@ -38,4 +38,6 @@ __all__ = [
38
38
  "Table",
39
39
  "Markdown",
40
40
  "Icon",
41
+ "StatResponse",
42
+ "StatValue",
41
43
  ]
@@ -2,11 +2,12 @@
2
2
  #
3
3
  # SPDX-License-Identifier: AGPL-3.0-or-later
4
4
 
5
- from typing import Literal
5
+ from typing import Literal, NotRequired, TypedDict
6
6
 
7
7
  from pydantic import BaseModel, Field
8
8
 
9
9
  from .http_methods import HttpMethod
10
+ from .icons import Icon
10
11
  from .property import Property
11
12
 
12
13
 
@@ -18,3 +19,11 @@ class Stat(BaseModel):
18
19
  url: str
19
20
  method: HttpMethod
20
21
  query: list[Property] | None = Field(None)
22
+
23
+
24
+ type StatValue = str | int | float | bool | None
25
+
26
+
27
+ class StatResponse(TypedDict):
28
+ value: StatValue
29
+ icon: NotRequired[Icon]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "openadmin-dev"
3
- version = "0.6.2"
3
+ version = "0.6.3"
4
4
  description = "Add your description here"
5
5
  authors = [
6
6
  { name="Mykyta Kasianenko", email="mykytakasianenko@gmail.com" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes