You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+44-1Lines changed: 44 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
Performant Python environment tooling and support, such as locating all global Python installs and virtual environments.
4
4
5
-
This project will be consumed by the [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python) directly. You can find the code to consume `pet` in the Python extension [source code](https://github.com/microsoft/vscode-python/blob/main/src/client/pythonEnvironments/base/locators/common/nativePythonFinder.ts). For more information on JSNORPC requests/notifications for this tool, please reference [/docs/JSONRPC.md](https://github.com/microsoft/python-environment-tools/blob/main/docs/JSONRPC.md).
5
+
This project will be consumed by the [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python) directly. You can find the code to consume `pet` in the Python extension [source code](https://github.com/microsoft/vscode-python/blob/main/src/client/pythonEnvironments/base/locators/common/nativePythonFinder.ts). For more information on JSONRPC requests/notifications for this tool, please reference [/docs/JSONRPC.md](https://github.com/microsoft/python-environment-tools/blob/main/docs/JSONRPC.md).
6
6
7
7
## Environment Types Supported
8
8
@@ -15,6 +15,8 @@ This project will be consumed by the [Python extension](https://marketplace.visu
15
15
- Miniconda
16
16
- Miniforge
17
17
- PipEnv
18
+
- Pixi
19
+
- Poetry
18
20
- Homebrew
19
21
- VirtualEnvWrapper
20
22
- VirtualEnvWrapper-Win
@@ -26,11 +28,52 @@ This project will be consumed by the [Python extension](https://marketplace.visu
26
28
27
29
- Discovery of all global Python installs
28
30
- Discovery of all Python virtual environments
31
+
- Fast performance using Rust with minimal I/O operations
32
+
- JSONRPC server interface for IDE integration
33
+
- Support for 15+ Python environment types across Windows, macOS, and Linux
# Resolve details for a specific Python executable
61
+
./target/release/pet resolve /path/to/python
62
+
```
63
+
64
+
For detailed JSONRPC API documentation, see [/docs/JSONRPC.md](./docs/JSONRPC.md).
29
65
30
66
## Key Methodology
31
67
32
68
Our approach prioritizes performance and efficiency by leveraging Rust. We minimize I/O operations by collecting all necessary environment information at once, which reduces repeated I/O and the need to spawn additional processes, significantly enhancing overall performance.
33
69
70
+
### Performance Principles
71
+
72
+
-**Avoid spawning processes**: Extract information from files and filesystem when possible
73
+
-**Report immediately**: Use asynchronous discovery pattern to report environments as soon as they are found
74
+
-**Complete information**: Gather all environment details in one pass, avoiding incremental reporting
75
+
-**Minimal I/O**: Reduce filesystem operations through efficient batching and caching
76
+
34
77
## Contributing
35
78
36
79
This project welcomes contributions and suggestions. Most contributions require you to agree to a
0 commit comments