panel-reactflow 0.0.1a1__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 (36) hide show
  1. panel_reactflow-0.0.1a1/.copier-answers.yml +12 -0
  2. panel_reactflow-0.0.1a1/.gitattributes +1 -0
  3. panel_reactflow-0.0.1a1/.github/CODEOWNERS +1 -0
  4. panel_reactflow-0.0.1a1/.github/dependabot.yml +10 -0
  5. panel_reactflow-0.0.1a1/.github/workflows/build.yml +45 -0
  6. panel_reactflow-0.0.1a1/.github/workflows/docs.yml +58 -0
  7. panel_reactflow-0.0.1a1/.github/workflows/test.yml +163 -0
  8. panel_reactflow-0.0.1a1/.gitignore +383 -0
  9. panel_reactflow-0.0.1a1/.pre-commit-config.yaml +70 -0
  10. panel_reactflow-0.0.1a1/.prettierrc +7 -0
  11. panel_reactflow-0.0.1a1/LICENSE.txt +30 -0
  12. panel_reactflow-0.0.1a1/MANIFEST.in +2 -0
  13. panel_reactflow-0.0.1a1/PKG-INFO +158 -0
  14. panel_reactflow-0.0.1a1/README.md +115 -0
  15. panel_reactflow-0.0.1a1/docs/assets/logo.svg +157 -0
  16. panel_reactflow-0.0.1a1/docs/examples.md +13 -0
  17. panel_reactflow-0.0.1a1/docs/index.md +6 -0
  18. panel_reactflow-0.0.1a1/docs/reference/panel_reactflow.md +3 -0
  19. panel_reactflow-0.0.1a1/examples/advanced.py +67 -0
  20. panel_reactflow-0.0.1a1/examples/simple.py +35 -0
  21. panel_reactflow-0.0.1a1/hatch_build.py +56 -0
  22. panel_reactflow-0.0.1a1/pixi.lock +12940 -0
  23. panel_reactflow-0.0.1a1/pixi.toml +118 -0
  24. panel_reactflow-0.0.1a1/pyproject.toml +157 -0
  25. panel_reactflow-0.0.1a1/src/panel_reactflow/__init__.py +12 -0
  26. panel_reactflow-0.0.1a1/src/panel_reactflow/__version.py +44 -0
  27. panel_reactflow-0.0.1a1/src/panel_reactflow/base.py +706 -0
  28. panel_reactflow-0.0.1a1/src/panel_reactflow/models/reactflow.jsx +561 -0
  29. panel_reactflow-0.0.1a1/src/panel_reactflow/py.typed +0 -0
  30. panel_reactflow-0.0.1a1/tests/__init__.py +1 -0
  31. panel_reactflow-0.0.1a1/tests/conftest.py +49 -0
  32. panel_reactflow-0.0.1a1/tests/test_api.py +94 -0
  33. panel_reactflow-0.0.1a1/tests/test_core.py +8 -0
  34. panel_reactflow-0.0.1a1/tests/ui/__init__.py +1 -0
  35. panel_reactflow-0.0.1a1/tests/ui/test_ui.py +223 -0
  36. panel_reactflow-0.0.1a1/zensical.toml +138 -0
@@ -0,0 +1,12 @@
1
+ # This file is managed by Copier; DO NOT EDIT OR REMOVE.
2
+ _commit: 3480b7c
3
+ _src_path: https://github.com/panel-extensions/copier-template-panel-extension
4
+ add_autobump_workflow: false
5
+ author_email: philipp@holoviz.org
6
+ author_name: Philipp Rudiger
7
+ docs_url: https://panel-extensions.github.io/panel-reactflow/
8
+ github_url: https://github.com/panel-extensions/panel-reactflow
9
+ github_user: panel-extensions
10
+ minimal_python_version: py310
11
+ project_short_description: A Panel wrapper for the Reactflow JS library.
12
+ project_slug: panel-reactflow
@@ -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,45 @@
1
+ name: Build
2
+ on:
3
+ pull_request:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - "*"
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
15
+ with:
16
+ fetch-depth: 0
17
+ - name: Set up pixi
18
+ uses: prefix-dev/setup-pixi@ba3bb36eb2066252b2363392b7739741bb777659 # v0.8.1
19
+ with:
20
+ environments: build
21
+ - name: Build project
22
+ run: pixi run -e build build-wheel
23
+ - name: Check package
24
+ run: pixi run -e build check-wheel
25
+ - name: Upload package
26
+ uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
27
+ with:
28
+ name: artifact
29
+ path: dist/*
30
+
31
+ release:
32
+ name: Publish package
33
+ if: startsWith(github.ref, 'refs/tags/')
34
+ needs: [build]
35
+ runs-on: ubuntu-latest
36
+ permissions:
37
+ id-token: write
38
+ environment: pypi
39
+ steps:
40
+ - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
41
+ with:
42
+ name: artifact
43
+ path: dist
44
+ - name: Publish package on PyPi
45
+ uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
@@ -0,0 +1,58 @@
1
+ name: Build documentation
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
9
+ permissions:
10
+ contents: read
11
+ pages: write
12
+ id-token: write
13
+
14
+ # Allow one concurrent deployment
15
+ concurrency:
16
+ group: "pages"
17
+ cancel-in-progress: true
18
+
19
+ # Default to bash
20
+ defaults:
21
+ run:
22
+ shell: bash
23
+
24
+ jobs:
25
+ build:
26
+ runs-on: ubuntu-latest
27
+
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+ with:
31
+ fetch-depth: 0
32
+ - name: Set up Pixi
33
+ uses: prefix-dev/setup-pixi@ba3bb36eb2066252b2363392b7739741bb777659 # v0.8.1
34
+ with:
35
+ environments: docs
36
+ - name: Build documentation
37
+ run: pixi run -e docs docs-build
38
+ - uses: actions/upload-artifact@v4
39
+ if: always()
40
+ with:
41
+ name: docs
42
+ if-no-files-found: error
43
+ path: builtdocs
44
+ - name: Upload artifact
45
+ uses: actions/upload-pages-artifact@v3
46
+ with:
47
+ path: ./builtdocs
48
+
49
+ deploy:
50
+ environment:
51
+ name: github-pages
52
+ url: ${{ steps.deployment.outputs.page_url }}
53
+ runs-on: ubuntu-latest
54
+ needs: build
55
+ steps:
56
+ - name: Deploy to GitHub Pages
57
+ id: deployment
58
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,163 @@
1
+ name: CI
2
+ on:
3
+ pull_request:
4
+ branches:
5
+ - "*"
6
+ push:
7
+ branches:
8
+ - main
9
+ # Automatically stop old builds on the same branch/PR
10
+ concurrency:
11
+ group: ${{ github.workflow }}-${{ github.ref }}
12
+ cancel-in-progress: true
13
+ jobs:
14
+ setup:
15
+ name: Setup workflow
16
+ runs-on: ubuntu-latest
17
+ permissions:
18
+ pull-requests: read
19
+ outputs:
20
+ code_change: ${{ steps.filter.outputs.code }}
21
+ matrix: ${{ env.MATRIX }}
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+ if: github.event_name != 'pull_request'
25
+ - name: Check for code changes
26
+ uses: dorny/paths-filter@v3
27
+ id: filter
28
+ with:
29
+ filters: |
30
+ code:
31
+ - 'src/**'
32
+ - 'pyproject.toml'
33
+ - '.github/workflows/ci.yaml'
34
+ - name: Set matrix option
35
+ run: |
36
+ if [[ '${{ github.event_name }}' == 'workflow_dispatch' ]]; then
37
+ OPTION=${{ github.event.inputs.target }}
38
+ elif [[ '${{ github.event_name }}' == 'schedule' ]]; then
39
+ OPTION="full"
40
+ elif [[ '${{ github.event_name }}' == 'push' && '${{ github.ref_type }}' == 'tag' ]]; then
41
+ OPTION="full"
42
+ else
43
+ OPTION="default"
44
+ fi
45
+ echo "MATRIX_OPTION=$OPTION" >> $GITHUB_ENV
46
+ - name: Set test matrix with 'default' option
47
+ if: env.MATRIX_OPTION == 'default'
48
+ run: |
49
+ MATRIX=$(jq -nsc '{
50
+ "os": ["ubuntu-latest", "macos-latest", "windows-latest"],
51
+ "environment": ["test-310", "test-312"],
52
+ }')
53
+ echo "MATRIX=$MATRIX" >> $GITHUB_ENV
54
+ - name: Set test matrix with 'full' option
55
+ if: env.MATRIX_OPTION == 'full'
56
+ run: |
57
+ MATRIX=$(jq -nsc '{
58
+ "os": ["ubuntu-latest", "macos-latest", "windows-latest"],
59
+ "environment": ["test-310", "test-311", "test-312"]
60
+ }')
61
+ echo "MATRIX=$MATRIX" >> $GITHUB_ENV
62
+ - name: Set test matrix with 'downstream' option
63
+ if: env.MATRIX_OPTION == 'downstream'
64
+ run: |
65
+ MATRIX=$(jq -nsc '{
66
+ "os": ["ubuntu-latest"],
67
+ "environment": ["test-311"]
68
+ }')
69
+ echo "MATRIX=$MATRIX" >> $GITHUB_ENV
70
+
71
+ pixi_lock:
72
+ name: Pixi lock
73
+ runs-on: ubuntu-latest
74
+ steps:
75
+ - uses: holoviz-dev/holoviz_tasks/pixi_lock@v0
76
+ with:
77
+ cache: ${{ github.event.inputs.cache == 'true' || github.event.inputs.cache == '' }}
78
+
79
+ pre_commit:
80
+ needs: [setup, pixi_lock]
81
+ runs-on: "ubuntu-latest"
82
+ steps:
83
+ - uses: actions/checkout@v5.0.0
84
+ - name: Set up pixi
85
+ uses: prefix-dev/setup-pixi@v0.9.2
86
+ - uses: holoviz-dev/holoviz_tasks/pre-commit@v0
87
+ - uses: pre-commit/action@v3.0.1
88
+ if: needs.setup.outputs.img_change == 'true'
89
+ with:
90
+ extra_args: -a --hook-stage manual oxipng || true --
91
+ - uses: stefanzweifel/git-auto-commit-action@v7
92
+ if: needs.setup.outputs.img_change == 'true'
93
+ with:
94
+ commit_message: "Optimize PNG images (lossless)"
95
+ file_pattern: "*.png"
96
+
97
+ pytest:
98
+ needs: [setup, pixi_lock]
99
+ timeout-minutes: 30
100
+ runs-on: ubuntu-latest
101
+ strategy:
102
+ fail-fast: false
103
+ matrix:
104
+ environment:
105
+ - py310
106
+ - py311
107
+ - py312
108
+ os:
109
+ - ubuntu-latest
110
+ - macos-latest
111
+ - windows-latest
112
+ steps:
113
+ - name: Checkout branch
114
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
115
+ with:
116
+ fetch-depth: 0
117
+ - name: Set up pixi
118
+ uses: prefix-dev/setup-pixi@ba3bb36eb2066252b2363392b7739741bb777659 # v0.8.1
119
+ with:
120
+ environments: ${{ matrix.environment }}
121
+ - name: Install repository
122
+ run: pixi run -e ${{ matrix.environment }} postinstall
123
+ - name: Run pytest
124
+ run: pixi run -e ${{ matrix.environment }} test-coverage --color=yes
125
+
126
+ ui_test:
127
+ name: ui:${{ matrix.environment }}:${{ matrix.os }}
128
+ needs: [pre_commit, setup, pixi_lock]
129
+ runs-on: ${{ matrix.os }}
130
+ if: needs.setup.outputs.code_change == 'true'
131
+ strategy:
132
+ fail-fast: false
133
+ matrix:
134
+ os: ["ubuntu-latest", "macos-latest", "windows-latest"]
135
+ environment: ["test-ui"]
136
+ timeout-minutes: 60
137
+ env:
138
+ PANEL_LOG_LEVEL: info
139
+ FAIL: "--screenshot only-on-failure --full-page-screenshot --output ui_screenshots --tracing retain-on-failure"
140
+ steps:
141
+ - uses: holoviz-dev/holoviz_tasks/pixi_install@v0
142
+ with:
143
+ environments: ${{ matrix.environment }}
144
+ install: false
145
+ id: install
146
+ - name: Test UI
147
+ run: |
148
+ # Create a .uicoveragerc file to set the concurrency library to greenlet
149
+ # https://github.com/microsoft/playwright-python/issues/313
150
+ echo "[run]\nconcurrency = greenlet" > .uicoveragerc
151
+ pixi run -e ${{ matrix.environment }} test-ui $COV --cov-config=.uicoveragerc $FAIL
152
+ - name: Upload UI Screenshots
153
+ uses: actions/upload-artifact@v5
154
+ if: always()
155
+ with:
156
+ name: ui_screenshots_${{ runner.os }}
157
+ path: ./ui_screenshots
158
+ if-no-files-found: ignore
159
+ - name: Upload coverage reports to Codecov
160
+ uses: codecov/codecov-action@v5
161
+ with:
162
+ token: ${{ secrets.CODECOV_TOKEN }}
163
+ slug: panel-extensions/panel-splitjs
@@ -0,0 +1,383 @@
1
+ # Created by https://www.toptal.com/developers/gitignore/api/linux,macos,direnv,python,windows,pycharm+all,visualstudiocode,vim
2
+ # Edit at https://www.toptal.com/developers/gitignore?templates=linux,macos,direnv,python,windows,pycharm+all,visualstudiocode,vim
3
+
4
+ ### direnv ###
5
+ .direnv
6
+ .envrc
7
+
8
+ ### Linux ###
9
+ *~
10
+
11
+ # temporary files which can be created if a process still has a handle open of a deleted file
12
+ .fuse_hidden*
13
+
14
+ # KDE directory preferences
15
+ .directory
16
+
17
+ # Linux trash folder which might appear on any partition or disk
18
+ .Trash-*
19
+
20
+ # .nfs files are created when an open file is removed but is still being accessed
21
+ .nfs*
22
+
23
+ ### macOS ###
24
+ # General
25
+ .DS_Store
26
+ .AppleDouble
27
+ .LSOverride
28
+
29
+ # Icon must end with two \r
30
+ Icon
31
+
32
+
33
+ # Thumbnails
34
+ ._*
35
+
36
+ # Files that might appear in the root of a volume
37
+ .DocumentRevisions-V100
38
+ .fseventsd
39
+ .Spotlight-V100
40
+ .TemporaryItems
41
+ .Trashes
42
+ .VolumeIcon.icns
43
+ .com.apple.timemachine.donotpresent
44
+
45
+ # Directories potentially created on remote AFP share
46
+ .AppleDB
47
+ .AppleDesktop
48
+ Network Trash Folder
49
+ Temporary Items
50
+ .apdisk
51
+
52
+ ### macOS Patch ###
53
+ # iCloud generated files
54
+ *.icloud
55
+
56
+ ### PyCharm+all ###
57
+ # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
58
+ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
59
+
60
+ # User-specific stuff
61
+ .idea/**/workspace.xml
62
+ .idea/**/tasks.xml
63
+ .idea/**/usage.statistics.xml
64
+ .idea/**/dictionaries
65
+ .idea/**/shelf
66
+
67
+ # AWS User-specific
68
+ .idea/**/aws.xml
69
+
70
+ # Generated files
71
+ .idea/**/contentModel.xml
72
+
73
+ # Sensitive or high-churn files
74
+ .idea/**/dataSources/
75
+ .idea/**/dataSources.ids
76
+ .idea/**/dataSources.local.xml
77
+ .idea/**/sqlDataSources.xml
78
+ .idea/**/dynamic.xml
79
+ .idea/**/uiDesigner.xml
80
+ .idea/**/dbnavigator.xml
81
+
82
+ # Gradle
83
+ .idea/**/gradle.xml
84
+ .idea/**/libraries
85
+
86
+ # Gradle and Maven with auto-import
87
+ # When using Gradle or Maven with auto-import, you should exclude module files,
88
+ # since they will be recreated, and may cause churn. Uncomment if using
89
+ # auto-import.
90
+ # .idea/artifacts
91
+ # .idea/compiler.xml
92
+ # .idea/jarRepositories.xml
93
+ # .idea/modules.xml
94
+ # .idea/*.iml
95
+ # .idea/modules
96
+ # *.iml
97
+ # *.ipr
98
+
99
+ # CMake
100
+ cmake-build-*/
101
+
102
+ # Mongo Explorer plugin
103
+ .idea/**/mongoSettings.xml
104
+
105
+ # File-based project format
106
+ *.iws
107
+
108
+ # IntelliJ
109
+ out/
110
+
111
+ # mpeltonen/sbt-idea plugin
112
+ .idea_modules/
113
+
114
+ # JIRA plugin
115
+ atlassian-ide-plugin.xml
116
+
117
+ # Cursive Clojure plugin
118
+ .idea/replstate.xml
119
+
120
+ # SonarLint plugin
121
+ .idea/sonarlint/
122
+
123
+ # Crashlytics plugin (for Android Studio and IntelliJ)
124
+ com_crashlytics_export_strings.xml
125
+ crashlytics.properties
126
+ crashlytics-build.properties
127
+ fabric.properties
128
+
129
+ # Editor-based Rest Client
130
+ .idea/httpRequests
131
+
132
+ # Android studio 3.1+ serialized cache file
133
+ .idea/caches/build_file_checksums.ser
134
+
135
+ ### PyCharm+all Patch ###
136
+ # Ignore everything but code style settings and run configurations
137
+ # that are supposed to be shared within teams.
138
+
139
+ .idea/*
140
+
141
+ !.idea/codeStyles
142
+ !.idea/runConfigurations
143
+
144
+ ### Python ###
145
+ # Byte-compiled / optimized / DLL files
146
+ __pycache__/
147
+ *.py[cod]
148
+ *$py.class
149
+
150
+ # C extensions
151
+ *.so
152
+
153
+ # Distribution / packaging
154
+ .Python
155
+ build/
156
+ develop-eggs/
157
+ dist/
158
+ downloads/
159
+ eggs/
160
+ .eggs/
161
+ lib/
162
+ lib64/
163
+ parts/
164
+ sdist/
165
+ var/
166
+ wheels/
167
+ share/python-wheels/
168
+ *.egg-info/
169
+ .installed.cfg
170
+ *.egg
171
+ MANIFEST
172
+
173
+ # PyInstaller
174
+ # Usually these files are written by a python script from a template
175
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
176
+ *.manifest
177
+ *.spec
178
+
179
+ # Installer logs
180
+ pip-log.txt
181
+ pip-delete-this-directory.txt
182
+
183
+ # Unit test / coverage reports
184
+ htmlcov/
185
+ .tox/
186
+ .nox/
187
+ .coverage
188
+ .coverage.*
189
+ .cache
190
+ nosetests.xml
191
+ coverage.xml
192
+ *.cover
193
+ *.py,cover
194
+ .hypothesis/
195
+ .pytest_cache/
196
+ cover/
197
+
198
+ # Translations
199
+ *.mo
200
+ *.pot
201
+
202
+ # Django stuff:
203
+ *.log
204
+ local_settings.py
205
+ db.sqlite3
206
+ db.sqlite3-journal
207
+
208
+ # Flask stuff:
209
+ instance/
210
+ .webassets-cache
211
+
212
+ # Scrapy stuff:
213
+ .scrapy
214
+
215
+ # Sphinx documentation
216
+ docs/_build/
217
+
218
+ # PyBuilder
219
+ .pybuilder/
220
+ target/
221
+
222
+ # Jupyter Notebook
223
+ .ipynb_checkpoints
224
+
225
+ # IPython
226
+ profile_default/
227
+ ipython_config.py
228
+
229
+ # pyenv
230
+ # For a library or package, you might want to ignore these files since the code is
231
+ # intended to run in multiple environments; otherwise, check them in:
232
+ # .python-version
233
+
234
+ # pipenv
235
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
236
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
237
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
238
+ # install all needed dependencies.
239
+ #Pipfile.lock
240
+
241
+ # poetry
242
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
243
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
244
+ # commonly ignored for libraries.
245
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
246
+ #poetry.lock
247
+
248
+ # pdm
249
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
250
+ #pdm.lock
251
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
252
+ # in version control.
253
+ # https://pdm.fming.dev/#use-with-ide
254
+ .pdm.toml
255
+
256
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
257
+ __pypackages__/
258
+
259
+ # Celery stuff
260
+ celerybeat-schedule
261
+ celerybeat.pid
262
+
263
+ # SageMath parsed files
264
+ *.sage.py
265
+
266
+ # Environments
267
+ .env
268
+ .venv
269
+ env/
270
+ venv/
271
+ ENV/
272
+ env.bak/
273
+ venv.bak/
274
+
275
+ # Spyder project settings
276
+ .spyderproject
277
+ .spyproject
278
+
279
+ # Rope project settings
280
+ .ropeproject
281
+
282
+ # mkdocs documentation
283
+ /site
284
+
285
+ # mypy
286
+ .mypy_cache/
287
+ .dmypy.json
288
+ dmypy.json
289
+
290
+ # Pyre type checker
291
+ .pyre/
292
+
293
+ # pytype static type analyzer
294
+ .pytype/
295
+
296
+ # Cython debug symbols
297
+ cython_debug/
298
+
299
+ # PyCharm
300
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
301
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
302
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
303
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
304
+ #.idea/
305
+
306
+ ### Python Patch ###
307
+ # Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
308
+ poetry.toml
309
+
310
+ # ruff
311
+ .ruff_cache/
312
+
313
+ # LSP config files
314
+ pyrightconfig.json
315
+
316
+ ### Vim ###
317
+ # Swap
318
+ [._]*.s[a-v][a-z]
319
+ !*.svg # comment out if you don't need vector files
320
+ [._]*.sw[a-p]
321
+ [._]s[a-rt-v][a-z]
322
+ [._]ss[a-gi-z]
323
+ [._]sw[a-p]
324
+
325
+ # Session
326
+ Session.vim
327
+ Sessionx.vim
328
+
329
+ # Temporary
330
+ .netrwhist
331
+ # Auto-generated tag files
332
+ tags
333
+ # Persistent undo
334
+ [._]*.un~
335
+
336
+ ### VisualStudioCode ###
337
+ .vscode/*
338
+ !.vscode/settings.json
339
+ !.vscode/tasks.json
340
+ !.vscode/launch.json
341
+ !.vscode/extensions.json
342
+ !.vscode/*.code-snippets
343
+
344
+ # Local History for Visual Studio Code
345
+ .history/
346
+
347
+ # Built Visual Studio Code Extensions
348
+ *.vsix
349
+
350
+ ### VisualStudioCode Patch ###
351
+ # Ignore all local history of files
352
+ .history
353
+ .ionide
354
+
355
+ ### Windows ###
356
+ # Windows thumbnail cache files
357
+ Thumbs.db
358
+ Thumbs.db:encryptable
359
+ ehthumbs.db
360
+ ehthumbs_vista.db
361
+
362
+ # Dump file
363
+ *.stackdump
364
+
365
+ # Folder config file
366
+ [Dd]esktop.ini
367
+
368
+ # Recycle Bin used on file shares
369
+ $RECYCLE.BIN/
370
+
371
+ # Windows Installer files
372
+ *.cab
373
+ *.msi
374
+ *.msix
375
+ *.msm
376
+ *.msp
377
+
378
+ # Windows shortcuts
379
+ *.lnk
380
+
381
+ # End of https://www.toptal.com/developers/gitignore/api/linux,macos,direnv,python,windows,pycharm+all,visualstudiocode,vim
382
+
383
+ .pixi