panel-flowdash 0.0.0a0__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 (67) hide show
  1. panel_flowdash-0.0.0a0/.copier-answers.yml +14 -0
  2. panel_flowdash-0.0.0a0/.gitattributes +1 -0
  3. panel_flowdash-0.0.0a0/.github/CODEOWNERS +1 -0
  4. panel_flowdash-0.0.0a0/.github/dependabot.yml +10 -0
  5. panel_flowdash-0.0.0a0/.github/workflows/build.yml +52 -0
  6. panel_flowdash-0.0.0a0/.github/workflows/ci.yml +172 -0
  7. panel_flowdash-0.0.0a0/.github/workflows/docs.yml +56 -0
  8. panel_flowdash-0.0.0a0/.github/workflows/update-lockfiles.yml +36 -0
  9. panel_flowdash-0.0.0a0/.gitignore +383 -0
  10. panel_flowdash-0.0.0a0/.pre-commit-config.yaml +46 -0
  11. panel_flowdash-0.0.0a0/.prettierrc +7 -0
  12. panel_flowdash-0.0.0a0/LICENSE.txt +30 -0
  13. panel_flowdash-0.0.0a0/MANIFEST.in +1 -0
  14. panel_flowdash-0.0.0a0/PKG-INFO +157 -0
  15. panel_flowdash-0.0.0a0/README.md +111 -0
  16. panel_flowdash-0.0.0a0/docs/assets/logo.svg +157 -0
  17. panel_flowdash-0.0.0a0/docs/examples/index.md +11 -0
  18. panel_flowdash-0.0.0a0/docs/examples/pipeline.md +144 -0
  19. panel_flowdash-0.0.0a0/docs/examples/viewer-components.md +118 -0
  20. panel_flowdash-0.0.0a0/docs/how-to/define-ports.md +145 -0
  21. panel_flowdash-0.0.0a0/docs/how-to/persist-dashboards.md +133 -0
  22. panel_flowdash-0.0.0a0/docs/how-to/register-components.md +128 -0
  23. panel_flowdash-0.0.0a0/docs/how-to/serve-project.md +92 -0
  24. panel_flowdash-0.0.0a0/docs/how-to/wire-dataflow.md +140 -0
  25. panel_flowdash-0.0.0a0/docs/index.md +48 -0
  26. panel_flowdash-0.0.0a0/docs/quickstart.md +80 -0
  27. panel_flowdash-0.0.0a0/docs/reference/panel_flowdash.md +45 -0
  28. panel_flowdash-0.0.0a0/docs/releases.md +13 -0
  29. panel_flowdash-0.0.0a0/examples/basic/Pages/__init__.py +0 -0
  30. panel_flowdash-0.0.0a0/examples/basic/Pages/about.py +25 -0
  31. panel_flowdash-0.0.0a0/examples/basic/Pages/home.py +14 -0
  32. panel_flowdash-0.0.0a0/examples/basic/README.md +9 -0
  33. panel_flowdash-0.0.0a0/examples/complex_dataflow/Components/__init__.py +0 -0
  34. panel_flowdash-0.0.0a0/examples/complex_dataflow/Components/capacity_plot.py +37 -0
  35. panel_flowdash-0.0.0a0/examples/complex_dataflow/Components/data_source.py +35 -0
  36. panel_flowdash-0.0.0a0/examples/complex_dataflow/Components/scatter_map.py +33 -0
  37. panel_flowdash-0.0.0a0/examples/complex_dataflow/Components/state_filter.py +46 -0
  38. panel_flowdash-0.0.0a0/examples/complex_dataflow/Components/table_view.py +24 -0
  39. panel_flowdash-0.0.0a0/examples/complex_dataflow/README.md +47 -0
  40. panel_flowdash-0.0.0a0/examples/simple_dataflow/Components/__init__.py +0 -0
  41. panel_flowdash-0.0.0a0/examples/simple_dataflow/Components/counter.py +15 -0
  42. panel_flowdash-0.0.0a0/examples/simple_dataflow/Components/display.py +16 -0
  43. panel_flowdash-0.0.0a0/examples/simple_dataflow/Components/selector.py +19 -0
  44. panel_flowdash-0.0.0a0/examples/simple_dataflow/README.md +17 -0
  45. panel_flowdash-0.0.0a0/pixi.lock +13367 -0
  46. panel_flowdash-0.0.0a0/pixi.toml +105 -0
  47. panel_flowdash-0.0.0a0/pyproject.toml +141 -0
  48. panel_flowdash-0.0.0a0/src/panel_flowdash/__init__.py +48 -0
  49. panel_flowdash-0.0.0a0/src/panel_flowdash/app.py +1039 -0
  50. panel_flowdash-0.0.0a0/src/panel_flowdash/command/__init__.py +40 -0
  51. panel_flowdash-0.0.0a0/src/panel_flowdash/command/__main__.py +5 -0
  52. panel_flowdash-0.0.0a0/src/panel_flowdash/command/serve.py +123 -0
  53. panel_flowdash-0.0.0a0/src/panel_flowdash/component_spec.py +161 -0
  54. panel_flowdash-0.0.0a0/src/panel_flowdash/dashboard_store.py +245 -0
  55. panel_flowdash-0.0.0a0/src/panel_flowdash/dataflow_engine.py +261 -0
  56. panel_flowdash-0.0.0a0/src/panel_flowdash/py.typed +0 -0
  57. panel_flowdash-0.0.0a0/src/panel_flowdash/registry.py +113 -0
  58. panel_flowdash-0.0.0a0/src/panel_flowdash/session_state.py +70 -0
  59. panel_flowdash-0.0.0a0/tests/__init__.py +1 -0
  60. panel_flowdash-0.0.0a0/tests/conftest.py +65 -0
  61. panel_flowdash-0.0.0a0/tests/test_command.py +149 -0
  62. panel_flowdash-0.0.0a0/tests/test_component_spec.py +253 -0
  63. panel_flowdash-0.0.0a0/tests/test_core.py +7 -0
  64. panel_flowdash-0.0.0a0/tests/test_dataflow_engine.py +676 -0
  65. panel_flowdash-0.0.0a0/tests/ui/__init__.py +1 -0
  66. panel_flowdash-0.0.0a0/tests/ui/test_ui.py +26 -0
  67. panel_flowdash-0.0.0a0/zensical.toml +142 -0
@@ -0,0 +1,14 @@
1
+ # This file is managed by Copier; DO NOT EDIT OR REMOVE.
2
+ _commit: 7e940d9
3
+ _src_path: https://github.com/panel-extensions/copier-template-panel-extension
4
+ add_autobump_workflow: true
5
+ author_email: philipp.jfr@gmail.com
6
+ author_name: Philipp Rudiger
7
+ docs_url: https://panel-extensions.github.io/panel-flowdash/
8
+ extension_type: panel
9
+ github_url: https://github.com/panel-extensions/panel-flowdash
10
+ github_user: panel-extensions
11
+ minimal_python_version: py310
12
+ project_short_description: Extends Panel with a dataflow and draggable grid based
13
+ dashboard editor.
14
+ project_slug: panel-flowdash
@@ -0,0 +1 @@
1
+ pixi.lock linguist-language=YAML linguist-generated=true
@@ -0,0 +1 @@
1
+ * @panel-extensions
@@ -0,0 +1,10 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: github-actions
4
+ directory: /
5
+ schedule:
6
+ interval: monthly
7
+ groups:
8
+ gh-actions:
9
+ patterns:
10
+ - "*"
@@ -0,0 +1,52 @@
1
+ name: Build
2
+ on:
3
+ pull_request:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - "*"
9
+
10
+ permissions: {}
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ build:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
21
+ with:
22
+ fetch-depth: 0
23
+ persist-credentials: false
24
+ - name: Set up pixi
25
+ uses: prefix-dev/setup-pixi@5185adfbffb4bd703da3010310260805d89ebb11 # v0.9.6
26
+ with:
27
+ environments: build
28
+ - name: Build project
29
+ run: pixi run -e build build-wheel
30
+ - name: Check package
31
+ run: pixi run -e build check-wheel
32
+ - name: Upload package
33
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
34
+ with:
35
+ name: artifact
36
+ path: dist/*
37
+
38
+ release:
39
+ name: Publish package
40
+ if: startsWith(github.ref, 'refs/tags/')
41
+ needs: [build]
42
+ runs-on: ubuntu-latest
43
+ permissions:
44
+ id-token: write
45
+ environment: pypi
46
+ steps:
47
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
48
+ with:
49
+ name: artifact
50
+ path: dist
51
+ - name: Publish package on PyPi
52
+ uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
@@ -0,0 +1,172 @@
1
+ name: CI
2
+ on:
3
+ pull_request:
4
+ branches:
5
+ - "*"
6
+ push:
7
+ branches:
8
+ - main
9
+
10
+ permissions: {}
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ defaults:
17
+ run:
18
+ shell: bash -e {0}
19
+
20
+ jobs:
21
+ setup:
22
+ name: Setup workflow
23
+ runs-on: ubuntu-latest
24
+ permissions:
25
+ pull-requests: read
26
+ outputs:
27
+ code_change: ${{ steps.filter.outputs.code }}
28
+ img_change: ${{ steps.filter.outputs.img }}
29
+ matrix: ${{ env.MATRIX }}
30
+ steps:
31
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
32
+ if: github.event_name != 'pull_request'
33
+ with:
34
+ persist-credentials: false
35
+ - name: Check for code changes
36
+ uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4
37
+ id: filter
38
+ with:
39
+ filters: |
40
+ code:
41
+ - 'src/**'
42
+ - 'pyproject.toml'
43
+ - '.github/workflows/ci.yaml'
44
+ img:
45
+ - '**/*.png'
46
+ - name: Set matrix option
47
+ env:
48
+ GITHUB_EVENT_INPUTS_TARGET: ${{ github.event.inputs.target }}
49
+ run: |
50
+ if [[ "${GITHUB_EVENT_NAME}" == 'workflow_dispatch' ]]; then
51
+ OPTION=${GITHUB_EVENT_INPUTS_TARGET}
52
+ elif [[ "${GITHUB_EVENT_NAME}" == 'schedule' ]]; then
53
+ OPTION="full"
54
+ elif [[ "${GITHUB_EVENT_NAME}" == 'push' && "${GITHUB_REF_TYPE}" == 'tag' ]]; then
55
+ OPTION="full"
56
+ else
57
+ OPTION="default"
58
+ fi
59
+ echo "MATRIX_OPTION=$OPTION" >> $GITHUB_ENV
60
+ - name: Set test matrix with 'default' option
61
+ if: env.MATRIX_OPTION == 'default'
62
+ run: |
63
+ MATRIX=$(jq -nsc '{
64
+ "os": ["ubuntu-latest", "macos-latest", "windows-latest"],
65
+ "environment": ["test-310", "test-314"],
66
+ }')
67
+ echo "MATRIX=$MATRIX" >> $GITHUB_ENV
68
+ - name: Set test matrix with 'full' option
69
+ if: env.MATRIX_OPTION == 'full'
70
+ run: |
71
+ MATRIX=$(jq -nsc '{
72
+ "os": ["ubuntu-latest", "macos-latest", "windows-latest"],
73
+ "environment": ["test-310", "test-311", "test-312", "test-313", "test-314"]
74
+ }')
75
+ echo "MATRIX=$MATRIX" >> $GITHUB_ENV
76
+ - name: Set test matrix with 'downstream' option
77
+ if: env.MATRIX_OPTION == 'downstream'
78
+ run: |
79
+ MATRIX=$(jq -nsc '{
80
+ "os": ["ubuntu-latest"],
81
+ "environment": ["test-310"]
82
+ }')
83
+ echo "MATRIX=$MATRIX" >> $GITHUB_ENV
84
+
85
+ pixi_lock:
86
+ name: Pixi lock
87
+ runs-on: ubuntu-latest
88
+ steps:
89
+ - uses: holoviz-dev/holoviz_tasks/pixi-lock@1a9884850782b0b80ba2e91b573e7d63d9d3c3dc # v1
90
+ with:
91
+ cache: ${{ github.event.inputs.cache == 'true' || github.event.inputs.cache == '' }}
92
+
93
+ pre_commit:
94
+ name: Run pre-commit
95
+ needs: [setup]
96
+ runs-on: ubuntu-latest
97
+ steps:
98
+ - uses: holoviz-dev/holoviz_tasks/pre-commit@1a9884850782b0b80ba2e91b573e7d63d9d3c3dc # v1
99
+ - uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
100
+ if: needs.setup.outputs.img_change == 'true'
101
+ with:
102
+ extra_args: -a --hook-stage manual oxipng || true --
103
+ - uses: stefanzweifel/git-auto-commit-action@04702edda442b2e678b25b537cec683a1493fcb9 # v7
104
+ if: needs.setup.outputs.img_change == 'true'
105
+ with:
106
+ commit_message: "Optimize PNG images (lossless)"
107
+ file_pattern: "*.png"
108
+
109
+ pytest:
110
+ timeout-minutes: 30
111
+ runs-on: ubuntu-latest
112
+ needs: [pre_commit, setup]
113
+ strategy:
114
+ fail-fast: false
115
+ matrix: ${{ fromJson(needs.setup.outputs.matrix) }}
116
+ steps:
117
+ - name: Checkout branch
118
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
119
+ with:
120
+ fetch-depth: 0
121
+ persist-credentials: false
122
+ - name: Set up pixi
123
+ uses: prefix-dev/setup-pixi@5185adfbffb4bd703da3010310260805d89ebb11 # v0.9.6
124
+ with:
125
+ environments: ${{ matrix.environment }}
126
+ - name: Run pytest
127
+ env:
128
+ ENV: ${{ matrix.environment }}
129
+ run: pixi run -e "${ENV}" test-coverage --color=yes
130
+
131
+ pytest_ui:
132
+ name: ui:${{ matrix.environment }}:${{ matrix.os }}
133
+ needs: [pre_commit, setup, pixi_lock]
134
+ runs-on: ${{ matrix.os }}
135
+ if: needs.setup.outputs.code_change == 'true'
136
+ strategy:
137
+ fail-fast: false
138
+ matrix:
139
+ environment: ["test-ui"]
140
+ os: ["ubuntu-latest", "macos-latest", "windows-latest"]
141
+ timeout-minutes: 60
142
+ env:
143
+ PANEL_LOG_LEVEL: info
144
+ steps:
145
+ - name: Checkout branch
146
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
147
+ with:
148
+ fetch-depth: 0
149
+ persist-credentials: false
150
+
151
+ - name: Set up Pixi
152
+ uses: prefix-dev/setup-pixi@5185adfbffb4bd703da3010310260805d89ebb11 # v0.9.6
153
+ with:
154
+ environments: ${{ matrix.environment }}
155
+
156
+ - name: Configure Coverage
157
+ run: |
158
+ echo "[run]" > .uicoveragerc
159
+ echo "concurrency = greenlet" >> .uicoveragerc
160
+
161
+ - name: Test UI
162
+ run: |
163
+ FAIL="--screenshot only-on-failure --full-page-screenshot --output ui_screenshots --tracing retain-on-failure"
164
+ pixi run -e ${{ matrix.environment }} test-ui --cov-config=.uicoveragerc $FAIL
165
+
166
+ - name: Upload UI Screenshots
167
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
168
+ if: always()
169
+ with:
170
+ name: ui_screenshots_${{ runner.os }}
171
+ path: ./ui_screenshots
172
+ if-no-files-found: ignore
@@ -0,0 +1,56 @@
1
+ name: Build documentation
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ permissions: {}
9
+
10
+ # Allow one concurrent deployment
11
+ concurrency:
12
+ group: "pages"
13
+ cancel-in-progress: true
14
+
15
+ # Default to bash
16
+ defaults:
17
+ run:
18
+ shell: bash
19
+
20
+ jobs:
21
+ build:
22
+ runs-on: ubuntu-latest
23
+
24
+ steps:
25
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
26
+ with:
27
+ fetch-depth: 0
28
+ persist-credentials: false
29
+
30
+ - name: Set up Pixi
31
+ uses: prefix-dev/setup-pixi@5185adfbffb4bd703da3010310260805d89ebb11 # v0.9.6
32
+ with:
33
+ environments: docs
34
+
35
+ - name: Build documentation
36
+ run: pixi run -e docs docs-build
37
+
38
+ - name: Upload artifact
39
+ uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5
40
+ with:
41
+ path: ./site
42
+
43
+ deploy:
44
+ environment:
45
+ name: github-pages
46
+ url: ${{ steps.deployment.outputs.page_url }}
47
+ runs-on: ubuntu-latest
48
+ permissions:
49
+ contents: read
50
+ pages: write
51
+ id-token: write
52
+ needs: build
53
+ steps:
54
+ - name: Deploy to GitHub Pages
55
+ id: deployment
56
+ uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
@@ -0,0 +1,36 @@
1
+ name: Update lockfiles
2
+ permissions:
3
+ contents: write
4
+ pull-requests: write
5
+
6
+ on:
7
+ workflow_dispatch:
8
+ schedule:
9
+ - cron: 0 5 1 * *
10
+
11
+ jobs:
12
+ pixi-update:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
16
+ with:
17
+ persist-credentials: true
18
+ - name: Set up pixi
19
+ uses: prefix-dev/setup-pixi@5185adfbffb4bd703da3010310260805d89ebb11 # v0.9.6
20
+ with:
21
+ run-install: false
22
+ - name: Update lockfiles
23
+ run: |
24
+ pixi update --json --no-install | pixi exec pixi-diff-to-markdown >> diff.md
25
+ - name: Create pull request
26
+ uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
27
+ with:
28
+ token: ${{ secrets.GITHUB_TOKEN }}
29
+ commit-message: Update pixi lockfile
30
+ title: Update pixi lockfile
31
+ body-path: diff.md
32
+ branch: update-pixi
33
+ base: main
34
+ labels: pixi
35
+ delete-branch: true
36
+ add-paths: pixi.lock