ipso 0.1.1__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 (103) hide show
  1. ipso-0.1.1/.github/workflows/ci.yml +176 -0
  2. ipso-0.1.1/.github/workflows/ipso-publish.yaml +129 -0
  3. ipso-0.1.1/.github/workflows/pytest-ipso-publish.yaml +54 -0
  4. ipso-0.1.1/.gitignore +234 -0
  5. ipso-0.1.1/Cargo.lock +1841 -0
  6. ipso-0.1.1/Cargo.toml +27 -0
  7. ipso-0.1.1/LICENSE +21 -0
  8. ipso-0.1.1/Makefile +58 -0
  9. ipso-0.1.1/PKG-INFO +15 -0
  10. ipso-0.1.1/README.md +121 -0
  11. ipso-0.1.1/docs/concept.md +137 -0
  12. ipso-0.1.1/docs/fixtures.md +246 -0
  13. ipso-0.1.1/docs/lsp.md +43 -0
  14. ipso-0.1.1/docs/pytest.md +248 -0
  15. ipso-0.1.1/docs/staleness.md +117 -0
  16. ipso-0.1.1/docs/tests.md +257 -0
  17. ipso-0.1.1/ipso/.coveragerc +2 -0
  18. ipso-0.1.1/ipso/.pre-commit-config.yaml +8 -0
  19. ipso-0.1.1/ipso/.python-version +1 -0
  20. ipso-0.1.1/ipso/Makefile +43 -0
  21. ipso-0.1.1/ipso/README.md +1 -0
  22. ipso-0.1.1/ipso/pyproject.toml +57 -0
  23. ipso-0.1.1/ipso/src/ipso/__about__.py +1 -0
  24. ipso-0.1.1/ipso/src/ipso/__init__.py +131 -0
  25. ipso-0.1.1/ipso/src/ipso/_executor/__init__.py +0 -0
  26. ipso-0.1.1/ipso/src/ipso/_executor/__main__.py +19 -0
  27. ipso-0.1.1/ipso/src/ipso/_runner.py +59 -0
  28. ipso-0.1.1/ipso/src/ipso/_state.py +33 -0
  29. ipso-0.1.1/ipso/src/ipso/py.typed +0 -0
  30. ipso-0.1.1/ipso/tests/__init__.py +0 -0
  31. ipso-0.1.1/ipso/tests/conftest.py +1 -0
  32. ipso-0.1.1/ipso/tests/test_in_kernel_api.py +519 -0
  33. ipso-0.1.1/ipso/tests/test_version.py +6 -0
  34. ipso-0.1.1/ipso/uv.lock +964 -0
  35. ipso-0.1.1/pyproject.toml +57 -0
  36. ipso-0.1.1/pytest-ipso/.coveragerc +2 -0
  37. ipso-0.1.1/pytest-ipso/.pre-commit-config.yaml +8 -0
  38. ipso-0.1.1/pytest-ipso/.python-version +1 -0
  39. ipso-0.1.1/pytest-ipso/Makefile +43 -0
  40. ipso-0.1.1/pytest-ipso/README.md +7 -0
  41. ipso-0.1.1/pytest-ipso/pyproject.toml +60 -0
  42. ipso-0.1.1/pytest-ipso/src/pytest_ipso/__about__.py +1 -0
  43. ipso-0.1.1/pytest-ipso/src/pytest_ipso/__init__.py +9 -0
  44. ipso-0.1.1/pytest-ipso/src/pytest_ipso/plugin.py +196 -0
  45. ipso-0.1.1/pytest-ipso/src/pytest_ipso/py.typed +0 -0
  46. ipso-0.1.1/pytest-ipso/tests/__init__.py +0 -0
  47. ipso-0.1.1/pytest-ipso/tests/conftest.py +2 -0
  48. ipso-0.1.1/pytest-ipso/tests/test_plugin.py +155 -0
  49. ipso-0.1.1/pytest-ipso/tests/test_version.py +6 -0
  50. ipso-0.1.1/pytest-ipso/uv.lock +991 -0
  51. ipso-0.1.1/scripts/bump-version +134 -0
  52. ipso-0.1.1/scripts/release +125 -0
  53. ipso-0.1.1/specs/cli-and-mcp-scaffold.md +89 -0
  54. ipso-0.1.1/specs/cli-test-runner.md +351 -0
  55. ipso-0.1.1/specs/diagnostic-renames.md +200 -0
  56. ipso-0.1.1/specs/edit-flow-refactor.md +298 -0
  57. ipso-0.1.1/specs/fixture-flow-editor-and-tracebacks.md +41 -0
  58. ipso-0.1.1/specs/github-ci-and-openrouter-e2e.md +114 -0
  59. ipso-0.1.1/specs/ipso-in-kernel-api.md +178 -0
  60. ipso-0.1.1/specs/ipso-python-package.md +135 -0
  61. ipso-0.1.1/specs/json-path-range.md +79 -0
  62. ipso-0.1.1/specs/lsp-server.md +265 -0
  63. ipso-0.1.1/specs/maturin-wheel-packaging.md +114 -0
  64. ipso-0.1.1/specs/mcp-repair-tool.md +772 -0
  65. ipso-0.1.1/specs/opencode-e2e-functional-tests.md +82 -0
  66. ipso-0.1.1/specs/programmatic-cli.md +478 -0
  67. ipso-0.1.1/specs/pytest-plugin.md +201 -0
  68. ipso-0.1.1/specs/sha-computation-bug-fix.md +45 -0
  69. ipso-0.1.1/specs/test-editor-cli.md +687 -0
  70. ipso-0.1.1/src/diagnostics.rs +682 -0
  71. ipso-0.1.1/src/diff_utils.rs +233 -0
  72. ipso-0.1.1/src/edit.rs +840 -0
  73. ipso-0.1.1/src/filter.rs +548 -0
  74. ipso-0.1.1/src/ipso/__about__.py +1 -0
  75. ipso-0.1.1/src/ipso/__init__.py +131 -0
  76. ipso-0.1.1/src/ipso/_executor/__init__.py +0 -0
  77. ipso-0.1.1/src/ipso/_executor/__main__.py +19 -0
  78. ipso-0.1.1/src/ipso/_runner.py +59 -0
  79. ipso-0.1.1/src/ipso/_state.py +33 -0
  80. ipso-0.1.1/src/ipso/py.typed +0 -0
  81. ipso-0.1.1/src/json_path.rs +424 -0
  82. ipso-0.1.1/src/lsp.rs +591 -0
  83. ipso-0.1.1/src/main.rs +880 -0
  84. ipso-0.1.1/src/mcp.rs +912 -0
  85. ipso-0.1.1/src/metadata.rs +443 -0
  86. ipso-0.1.1/src/notebook.rs +341 -0
  87. ipso-0.1.1/src/save.rs +1054 -0
  88. ipso-0.1.1/src/shas.rs +670 -0
  89. ipso-0.1.1/src/test_runner.rs +1387 -0
  90. ipso-0.1.1/src/update.rs +773 -0
  91. ipso-0.1.1/src/view.rs +282 -0
  92. ipso-0.1.1/tests/cli.rs +2570 -0
  93. ipso-0.1.1/tests/common/mod.rs +29 -0
  94. ipso-0.1.1/tests/execute_nb.py +17 -0
  95. ipso-0.1.1/tests/fixtures/simple.ipynb +93 -0
  96. ipso-0.1.1/tests/fixtures/test-fail-assertion.ipynb +30 -0
  97. ipso-0.1.1/tests/fixtures/test-fixture-error.ipynb +37 -0
  98. ipso-0.1.1/tests/fixtures/test-multi-cell.ipynb +47 -0
  99. ipso-0.1.1/tests/fixtures/test-pass.ipynb +47 -0
  100. ipso-0.1.1/tests/fixtures/test-source-error.ipynb +40 -0
  101. ipso-0.1.1/tests/fixtures/test-subtests.ipynb +37 -0
  102. ipso-0.1.1/tests/fixtures/test-with-diff.ipynb +38 -0
  103. ipso-0.1.1/tests/test_wheel_e2e.sh +72 -0
@@ -0,0 +1,176 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [main]
7
+
8
+ jobs:
9
+ rust:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v6
13
+
14
+ - name: Install Rust
15
+ uses: dtolnay/rust-toolchain@stable
16
+ with:
17
+ components: rustfmt, clippy
18
+
19
+ - name: Cache Rust dependencies
20
+ uses: Swatinem/rust-cache@v2
21
+
22
+ - name: Build
23
+ run: make build
24
+
25
+ - name: Lint
26
+ run: make lint
27
+
28
+ test-rs:
29
+ runs-on: ubuntu-latest
30
+ steps:
31
+ - uses: actions/checkout@v6
32
+
33
+ - name: Install Rust
34
+ uses: dtolnay/rust-toolchain@stable
35
+
36
+ - name: Cache Rust dependencies
37
+ uses: Swatinem/rust-cache@v2
38
+
39
+ - name: Set up Python
40
+ uses: actions/setup-python@v6
41
+ with:
42
+ python-version: "3.12"
43
+
44
+ - name: Run Rust integration tests
45
+ run: make test
46
+
47
+ test-ipso:
48
+ runs-on: ubuntu-latest
49
+ steps:
50
+ - uses: actions/checkout@v6
51
+
52
+ - name: Install Rust
53
+ uses: dtolnay/rust-toolchain@stable
54
+
55
+ - name: Cache Rust dependencies
56
+ uses: Swatinem/rust-cache@v2
57
+
58
+ - name: Install uv
59
+ uses: astral-sh/setup-uv@v7
60
+ with:
61
+ enable-cache: true
62
+
63
+ - name: Set up Python
64
+ uses: actions/setup-python@v6
65
+ with:
66
+ python-version-file: ipso/.python-version
67
+
68
+ - name: Run tests
69
+ run: make -C ipso test
70
+
71
+ - name: Upload coverage
72
+ uses: actions/upload-artifact@v7
73
+ with:
74
+ name: coverage-nb
75
+ path: |
76
+ ipso/coverage.xml
77
+ ipso/htmlcov/
78
+
79
+ test-pipso:
80
+ runs-on: ubuntu-latest
81
+ steps:
82
+ - uses: actions/checkout@v6
83
+
84
+ - name: Install Rust
85
+ uses: dtolnay/rust-toolchain@stable
86
+
87
+ - name: Cache Rust dependencies
88
+ uses: Swatinem/rust-cache@v2
89
+
90
+ - name: Install uv
91
+ uses: astral-sh/setup-uv@v7
92
+ with:
93
+ enable-cache: true
94
+
95
+ - name: Set up Python
96
+ uses: actions/setup-python@v6
97
+ with:
98
+ python-version-file: pytest-ipso/.python-version
99
+
100
+ - name: Install ipso (builds CLI from source)
101
+ run: uv pip install --system ./ipso/
102
+
103
+ - name: Run tests
104
+ run: make -C pytest-ipso test
105
+
106
+ - name: Upload coverage
107
+ uses: actions/upload-artifact@v7
108
+ with:
109
+ name: coverage-pnb
110
+ path: |
111
+ pytest-ipso/coverage.xml
112
+ pytest-ipso/htmlcov/
113
+
114
+ lint-ipso:
115
+ runs-on: ubuntu-latest
116
+ steps:
117
+ - uses: actions/checkout@v6
118
+
119
+ - name: Install Rust
120
+ uses: dtolnay/rust-toolchain@stable
121
+
122
+ - name: Cache Rust dependencies
123
+ uses: Swatinem/rust-cache@v2
124
+
125
+ - name: Install uv
126
+ uses: astral-sh/setup-uv@v7
127
+ with:
128
+ enable-cache: true
129
+
130
+ - name: Set up Python
131
+ uses: actions/setup-python@v6
132
+ with:
133
+ python-version-file: ipso/.python-version
134
+
135
+ - name: Lint, format, and type-check
136
+ run: make -C ipso all
137
+
138
+ lint-pipso:
139
+ runs-on: ubuntu-latest
140
+ steps:
141
+ - uses: actions/checkout@v6
142
+
143
+ - name: Install uv
144
+ uses: astral-sh/setup-uv@v7
145
+ with:
146
+ enable-cache: true
147
+
148
+ - name: Set up Python
149
+ uses: actions/setup-python@v6
150
+ with:
151
+ python-version-file: pytest-ipso/.python-version
152
+
153
+ - name: Lint, format, and type-check
154
+ run: make -C pytest-ipso all
155
+
156
+ coverage-comment:
157
+ needs: [test-ipso, test-pipso]
158
+ runs-on: ubuntu-latest
159
+ if: github.event_name == 'pull_request'
160
+ permissions:
161
+ pull-requests: write
162
+
163
+ steps:
164
+ - uses: actions/checkout@v6
165
+
166
+ - name: Download ipso coverage
167
+ uses: actions/download-artifact@v8
168
+ with:
169
+ name: coverage-nb
170
+ path: ipso
171
+
172
+ - name: Post coverage comment
173
+ uses: orgoro/coverage@v3.2
174
+ with:
175
+ coverageFile: ipso/coverage.xml
176
+ token: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,129 @@
1
+ name: ipso Publish
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ tags: ["ipso/v[0-9]+.[0-9]+.[0-9]+"]
7
+ pull_request:
8
+ branches: [main]
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ build-wheels:
15
+ name: Build wheel (${{ matrix.target }})
16
+ runs-on: ${{ matrix.os }}
17
+ strategy:
18
+ matrix:
19
+ include:
20
+ - os: ubuntu-latest
21
+ target: x86_64-unknown-linux-gnu
22
+ - os: macos-15-intel
23
+ target: x86_64-apple-darwin
24
+ - os: macos-15
25
+ target: aarch64-apple-darwin
26
+ - os: windows-latest
27
+ target: x86_64-pc-windows-msvc
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+
31
+ - name: Set up Python
32
+ uses: actions/setup-python@v5
33
+ with:
34
+ python-version-file: ipso/.python-version
35
+
36
+ - name: Build wheel
37
+ uses: PyO3/maturin-action@v1
38
+ with:
39
+ target: ${{ matrix.target }}
40
+ args: --release -o dist/ --find-interpreter
41
+ working-directory: ipso
42
+
43
+ - name: Upload wheel
44
+ uses: actions/upload-artifact@v4
45
+ with:
46
+ name: wheel-${{ matrix.target }}
47
+ path: ipso/dist/*.whl
48
+
49
+ build-sdist:
50
+ name: Build sdist
51
+ runs-on: ubuntu-latest
52
+ steps:
53
+ - uses: actions/checkout@v4
54
+
55
+ - name: Build sdist
56
+ uses: PyO3/maturin-action@v1
57
+ with:
58
+ command: sdist
59
+ args: -o dist/
60
+ working-directory: ipso
61
+
62
+ - name: Upload sdist
63
+ uses: actions/upload-artifact@v4
64
+ with:
65
+ name: sdist
66
+ path: ipso/dist/*.tar.gz
67
+
68
+ e2e-wheel:
69
+ name: E2E wheel test (${{ matrix.target }})
70
+ needs: [build-wheels]
71
+ runs-on: ${{ matrix.os }}
72
+ strategy:
73
+ matrix:
74
+ include:
75
+ - os: ubuntu-latest
76
+ target: x86_64-unknown-linux-gnu
77
+ - os: macos-15-intel
78
+ target: x86_64-apple-darwin
79
+ - os: macos-15
80
+ target: aarch64-apple-darwin
81
+ - os: windows-latest
82
+ target: x86_64-pc-windows-msvc
83
+ steps:
84
+ - uses: actions/checkout@v4
85
+
86
+ - name: Set up Python
87
+ uses: actions/setup-python@v5
88
+ with:
89
+ python-version-file: ipso/.python-version
90
+
91
+ - name: Download wheel
92
+ uses: actions/download-artifact@v4
93
+ with:
94
+ name: wheel-${{ matrix.target }}
95
+ path: dist/
96
+
97
+ - name: Run e2e test (Unix)
98
+ if: runner.os != 'Windows'
99
+ run: bash tests/test_wheel_e2e.sh dist/*.whl
100
+
101
+ - name: Run e2e test (Windows)
102
+ if: runner.os == 'Windows'
103
+ shell: pwsh
104
+ run: |
105
+ $wheel = (Get-ChildItem dist/*.whl).FullName
106
+ python -m venv test-venv
107
+ test-venv\Scripts\Activate.ps1
108
+ pip install $wheel
109
+ ipso --help
110
+ python -c "import ipso; print(ipso.__version__)"
111
+ deactivate
112
+
113
+ publish:
114
+ needs: [build-wheels, build-sdist, e2e-wheel]
115
+ runs-on: ubuntu-latest
116
+ if: startsWith(github.ref, 'refs/tags/ipso/v')
117
+ environment: pypi
118
+ permissions:
119
+ id-token: write
120
+
121
+ steps:
122
+ - name: Download all artifacts
123
+ uses: actions/download-artifact@v4
124
+ with:
125
+ path: dist/
126
+ merge-multiple: true
127
+
128
+ - name: Publish to PyPI
129
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,54 @@
1
+ name: pytest-ipso Publish
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ tags: ["pytest-ipso/v[0-9]+.[0-9]+.[0-9]+"]
7
+ pull_request:
8
+ branches: [main]
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ build:
15
+ name: Build
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v6
22
+
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v5
25
+ with:
26
+ python-version-file: pytest-ipso/.python-version
27
+
28
+ - name: Build package
29
+ run: uv build
30
+ working-directory: pytest-ipso
31
+
32
+ - name: Upload dist
33
+ uses: actions/upload-artifact@v4
34
+ with:
35
+ name: dist
36
+ path: pytest-ipso/dist/
37
+
38
+ publish:
39
+ needs: [build]
40
+ runs-on: ubuntu-latest
41
+ if: startsWith(github.ref, 'refs/tags/pytest-ipso/v')
42
+ environment: pypi
43
+ permissions:
44
+ id-token: write
45
+
46
+ steps:
47
+ - name: Download artifacts
48
+ uses: actions/download-artifact@v4
49
+ with:
50
+ name: dist
51
+ path: dist/
52
+
53
+ - name: Publish to PyPI
54
+ uses: pypa/gh-action-pypi-publish@release/v1
ipso-0.1.1/.gitignore ADDED
@@ -0,0 +1,234 @@
1
+ # Rust gitignore
2
+ # Generated by Cargo
3
+ # will have compiled files and executables
4
+ debug
5
+ target
6
+
7
+ # These are backup files generated by rustfmt
8
+ **/*.rs.bk
9
+
10
+ # MSVC Windows builds of rustc generate these, which store debugging information
11
+ *.pdb
12
+
13
+ # Generated by cargo mutants
14
+ # Contains mutation testing data
15
+ **/mutants.out*/
16
+
17
+ # RustRover
18
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
19
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
20
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
21
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
22
+ #.idea/
23
+
24
+ # Python gitignore
25
+ # Byte-compiled / optimized / DLL files
26
+ __pycache__/
27
+ *.py[codz]
28
+ *$py.class
29
+
30
+ # C extensions
31
+ *.so
32
+
33
+ # Distribution / packaging
34
+ .Python
35
+ build/
36
+ develop-eggs/
37
+ dist/
38
+ downloads/
39
+ eggs/
40
+ .eggs/
41
+ lib/
42
+ lib64/
43
+ parts/
44
+ sdist/
45
+ var/
46
+ wheels/
47
+ share/python-wheels/
48
+ *.egg-info/
49
+ .installed.cfg
50
+ *.egg
51
+ MANIFEST
52
+
53
+ # PyInstaller
54
+ # Usually these files are written by a python script from a template
55
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
56
+ *.manifest
57
+ *.spec
58
+
59
+ # Installer logs
60
+ pip-log.txt
61
+ pip-delete-this-directory.txt
62
+
63
+ # Unit test / coverage reports
64
+ htmlcov/
65
+ .tox/
66
+ .nox/
67
+ .coverage
68
+ .coverage.*
69
+ .cache
70
+ nosetests.xml
71
+ coverage.xml
72
+ *.cover
73
+ *.py.cover
74
+ .hypothesis/
75
+ .pytest_cache/
76
+ cover/
77
+
78
+ # Translations
79
+ *.mo
80
+ *.pot
81
+
82
+ # Django stuff:
83
+ *.log
84
+ local_settings.py
85
+ db.sqlite3
86
+ db.sqlite3-journal
87
+
88
+ # Flask stuff:
89
+ instance/
90
+ .webassets-cache
91
+
92
+ # Scrapy stuff:
93
+ .scrapy
94
+
95
+ # Sphinx documentation
96
+ docs/_build/
97
+
98
+ # PyBuilder
99
+ .pybuilder/
100
+ target/
101
+
102
+ # Jupyter Notebook
103
+ .ipynb_checkpoints
104
+
105
+ # IPython
106
+ profile_default/
107
+ ipython_config.py
108
+
109
+ # pyenv
110
+ # For a library or package, you might want to ignore these files since the code is
111
+ # intended to run in multiple environments; otherwise, check them in:
112
+ # .python-version
113
+
114
+ # pipenv
115
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
116
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
117
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
118
+ # install all needed dependencies.
119
+ #Pipfile.lock
120
+
121
+ # UV
122
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
123
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
124
+ # commonly ignored for libraries.
125
+ #uv.lock
126
+
127
+ # poetry
128
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
129
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
130
+ # commonly ignored for libraries.
131
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
132
+ #poetry.lock
133
+ #poetry.toml
134
+
135
+ # pdm
136
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
137
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
138
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
139
+ #pdm.lock
140
+ #pdm.toml
141
+ .pdm-python
142
+ .pdm-build/
143
+
144
+ # pixi
145
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
146
+ #pixi.lock
147
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
148
+ # in the .venv directory. It is recommended not to include this directory in version control.
149
+ .pixi
150
+
151
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
152
+ __pypackages__/
153
+
154
+ # Celery stuff
155
+ celerybeat-schedule
156
+ celerybeat.pid
157
+
158
+ # SageMath parsed files
159
+ *.sage.py
160
+
161
+ # Environments
162
+ .env
163
+ .envrc
164
+ .venv
165
+ env/
166
+ venv/
167
+ ENV/
168
+ env.bak/
169
+ venv.bak/
170
+
171
+ # Spyder project settings
172
+ .spyderproject
173
+ .spyproject
174
+
175
+ # Rope project settings
176
+ .ropeproject
177
+
178
+ # mkdocs documentation
179
+ /site
180
+
181
+ # mypy
182
+ .mypy_cache/
183
+ .dmypy.json
184
+ dmypy.json
185
+
186
+ # Pyre type checker
187
+ .pyre/
188
+
189
+ # pytype static type analyzer
190
+ .pytype/
191
+
192
+ # Cython debug symbols
193
+ cython_debug/
194
+
195
+ # PyCharm
196
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
197
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
198
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
199
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
200
+ #.idea/
201
+
202
+ # Abstra
203
+ # Abstra is an AI-powered process automation framework.
204
+ # Ignore directories containing user credentials, local state, and settings.
205
+ # Learn more at https://abstra.io/docs
206
+ .abstra/
207
+
208
+ # Visual Studio Code
209
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
210
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
211
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
212
+ # you could uncomment the following to ignore the entire vscode folder
213
+ # .vscode/
214
+
215
+ # Ruff stuff:
216
+ .ruff_cache/
217
+
218
+ # PyPI configuration file
219
+ .pypirc
220
+
221
+ # Cursor
222
+ # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
223
+ # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
224
+ # refer to https://docs.cursor.com/context/ignore-files
225
+ .cursorignore
226
+ .cursorindexingignore
227
+
228
+ # Marimo
229
+ marimo/_static/
230
+ marimo/_lsp/
231
+ __marimo__/
232
+
233
+ # Test venv (created by make test-setup)
234
+ tests/.venv/