# script-bisect
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
Bisect package versions in PEP 723 Python scripts using git bisect and uv.
## Overview
`script-bisect` combines the power of git bisect with PEP 723 inline script metadata to automatically find the commit that introduced a regression in a Python package dependency. It works by:
1. π **Parsing** your PEP 723 script to extract dependency information
2. π₯ **Cloning** the package repository automatically
3. π **Running** git bisect with intelligent test automation
4. βοΈ **Updating** package references for each commit tested
5. π― **Finding** the exact commit that caused the issue
Perfect for debugging package regressions, testing new features, and creating reliable bug reports.
### Super Quick Start π
Point script-bisect directly at a real GitHub issue:
```bash
# Bisect a real xarray issue directly from GitHub
uvx script-bisect https://github.com/pydata/xarray/issues/10712 xarray v2025.07.1 v2025.08.0
```
That's it! script-bisect will:
1. **Extract** the code from the GitHub issue
2. **Create** a test script automatically
3. **Detect** the package and repository
4. **Run** the bisection to find the problematic commit
For xarray issue [#10712](https://github.com/pydata/xarray/issues/10712), this will show you exactly which commit introduced the regression!
You can also omit the REFs and fill them in using using the UI
```bash
# Bisect a real xarray issue directly from GitHub
uvx script-bisect https://github.com/pydata/xarray/issues/10712 xarray
```
## Installation
### Using uvx (Recommended)
```bash
uvx script-bisect script.py package_name good_ref bad_ref
```
### Using uv
```bash
uv tool install script-bisect
script-bisect script.py package_name good_ref bad_ref
```
### Development Installation
```bash
git clone https://github.com/user/script-bisect.git
cd script-bisect
uv sync --extra dev
uv run script-bisect --help
```
## Quick Start
### Try It Now! π
### Manual Script Method
You can also create your own test script:
### 1. Create Your Own Script
Create a script that demonstrates your issue:
```python
# /// script
# requires-python = ">=3.11"
# dependencies = [
# "xarray@git+https://github.com/pydata/xarray.git@main",
# ]
# ///
import xarray as xr
import numpy as np
# Your reproducer code here
data = xr.Dataset({'temp': (['time'], np.random.randn(10))})
result = data.some_method() # This might fail in certain versions
print("β
Test passed!")
```
### 2. Run the Bisection
```bash
# Find when something broke
script-bisect bug_report.py xarray v2024.01.0 v2024.03.0
# Find when something was fixed (inverse mode)
script-bisect bug_report.py pandas v1.5.0 v2.0.0 --inverse
```
### 3. Get Results
```
π script-bisect v0.1.0
Bisect package versions in PEP 723 Python scripts
π¦ Package: xarray
π Repository: https://github.com/pydata/xarray.git
β
Good ref: v2024.01.0 (commit: abc123...)
β Bad ref: v2024.03.0 (commit: def456...)
π Starting bisection (approximately 7 steps)...
β¨ Found first bad commit:
Commit: 234pqr890...
Author: John Doe <john@example.com>
Date: 2024-02-15 10:30:00
Message: Refactor array indexing logic
View on GitHub: https://github.com/pydata/xarray/commit/234pqr890
```
## Usage
### Basic Usage
```bash
script-bisect SCRIPT PACKAGE GOOD_REF BAD_REF
```
- **SCRIPT**: Path to your PEP 723 Python script
- **PACKAGE**: Name of the package to bisect
- **GOOD_REF**: Git reference (tag/commit/branch) where it works
- **BAD_REF**: Git reference where it's broken
### Options
- `--repo-url URL`: Override repository URL (auto-detected from git dependencies)
- `--test-command CMD`: Custom test command (default: `uv run SCRIPT`)
- `--inverse`: Find when something was fixed (not broken)
- `--keep-clone`: Keep cloned repository for inspection
- `--dry-run`: Show what would be done without executing
- `--verbose`: Enable detailed logging
- `--yes`: Auto-confirm all prompts for automated usage
- `--verify-endpoints`: Verify good/bad references before starting
- `--refresh-cache`: Force refresh of cached repositories and metadata
- `--full-traceback`: Show full Python tracebacks on errors
### Examples
#### Basic Package Regression
```bash
# Your script has: numpy>=1.24.0
script-bisect reproducer.py numpy 1.24.0 1.26.0
```
#### Git Dependency Already Present
```bash
# Your script has: xarray@git+https://github.com/pydata/xarray.git@main
script-bisect bug_report.py xarray v2024.01.0 main
```
#### Custom Repository
```bash
script-bisect test.py numpy v1.24.0 main \\
--repo-url https://github.com/numpy/numpy.git
```
#### Custom Test Command
```bash
script-bisect test.py pandas v2.0.0 main \\
--test-command "python -m pytest {script}"
```
#### Finding Fixes (Inverse Mode)
```bash
# Find when a bug was fixed
script-bisect regression_test.py scipy v1.10.0 v1.11.0 --inverse
```
#### Automated Usage
```bash
# Auto-confirm all prompts for CI/automated use
script-bisect test.py numpy v1.24.0 v1.26.0 --yes --verbose
# Force refresh cached data and verify endpoints
script-bisect test.py xarray v2024.01.0 main --refresh-cache --verify-endpoints
```
#### Advanced Examples
```bash
# Full automation with error details
script-bisect regression.py pandas v1.5.0 v2.0.0 \\
--yes --full-traceback --keep-clone
# Interactive mode with custom test command
script-bisect integration_test.py requests v2.28.0 v2.31.0 \\
--test-command "python -m pytest {script} -v"
```
## Requirements
### System Requirements
- **Python 3.11+**
- **uv** package manager ([installation guide](https://docs.astral.sh/uv/getting-started/installation/))
- **git** version control
### Script Requirements
Your Python script must contain PEP 723 inline metadata with dependencies:
```python
# /// script
# requires-python = ">=3.11"
# dependencies = [
# "package_name>=1.0",
# # OR for git dependencies:
# "package_name@git+https://github.com/org/repo.git@ref",
# ]
# ///
```
The tool will automatically convert PyPI package specs to git dependencies during bisection.
## Interactive Features
### Parameter Editing
Before starting bisection, you can interactively modify parameters:
```
π Bisection Summary
[s] π Script test_script.py
[p] π¦ Package xarray
[r] π Repository https://github.com/pydata/xarray.git
[g] β
Good ref v2024.01.0
[b] β Bad ref v2024.03.0
[t] π§ͺ Test command uv run test_script.py
[i] π Mode Normal (find when broken)
Press the highlighted key to edit that parameter, or:
Enter/y - Start bisection
n/q - Cancel
```
- Press any highlighted key (s, p, r, g, b, t, i) to edit that parameter
- Edit scripts directly in your configured editor (respects `git config core.editor`)
- Toggle between normal and inverse bisection modes
- Modify test commands and repository URLs on the fly
### End State Options
After bisection completes, choose what to do next:
1. **Exit** - Complete the bisection
2. **Re-run with different refs** - Try different good/bad references
3. **Re-run with different script** - Edit or change the test script
4. **Re-run with modified parameters** - Change package, repo URL, or test command
### Intelligent Caching
script-bisect includes a smart caching system for better performance:
- **Repository Caching**: Cloned repositories are cached in `~/.cache/script-bisect/repos/`
- **Metadata Caching**: Package metadata is cached to avoid repeated PyPI lookups
- **Automatic Updates**: Cached repos are updated with `git fetch` for new commits
- **Auto-cleanup**: Expired cache entries are cleaned up automatically
- **Force Refresh**: Use `--refresh-cache` to bypass cache and fetch fresh data
Cache locations follow XDG Base Directory standards:
- Linux/macOS: `~/.cache/script-bisect/`
- Windows: `%LOCALAPPDATA%\script-bisect\cache\`
## How It Works
### 1. Script Analysis
- Parses PEP 723 metadata from your script
- Validates package dependencies and requirements
- Auto-detects repository URLs for PyPI packages using multiple sources
### 2. Repository Management
- Clones the package repository (with intelligent caching)
- Validates that good/bad references exist
- Updates cached repositories with latest commits
- Manages cleanup automatically (unless `--keep-clone` is used)
### 3. Bisection Process
- Uses `git bisect run` with an automated test script
- For each commit, updates your script's dependency reference
- Runs `uv run script.py` to test the specific commit
- Returns appropriate exit codes for git bisect (0=good, 1=bad, 125=skip)
### 4. Result Reporting
- Identifies the exact problematic commit
- Shows commit details (author, date, message)
- Provides GitHub/GitLab links when possible
- Offers interactive options for follow-up actions
## Troubleshooting
### Common Issues
**"Package not found in dependencies"**
- Ensure the package name matches exactly what's in your dependencies list
- Use `--verbose` to see available packages
**"Could not auto-detect repository URL"**
- Use `--repo-url` to specify the repository manually
- Ensure the package has repository metadata on PyPI
**"uv not found"**
- Install uv: `curl -LsSf https://astral.sh/uv/install.sh | sh`
- Ensure uv is in your PATH
**Test always fails/passes**
- Check your script logic with `--dry-run`
- Use `--verbose` to see test output
- Verify your script correctly demonstrates the issue
### Getting Help
- Check the [troubleshooting guide](./docs/troubleshooting.md)
- Review example scripts in [`examples/`](./examples/)
- Open an issue on [GitHub](https://github.com/user/script-bisect/issues)
## Future Features
### Roadmap πΊοΈ
- **Multiple Package Bisection**: Bisect multiple related packages simultaneously
- **PyPI Metadata Lookup**: Automatic repository detection for more packages
- **Regression Test Suite**: Generate test suites from bisection results
- **CI Integration**: GitHub Actions and other CI platform support
## Contributing
We welcome contributions! See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
### Development Setup
```bash
git clone https://github.com/user/script-bisect.git
cd script-bisect
uv sync --extra dev
uv run pre-commit install
# Run tests
uv run pytest
uv run pytest --cov=script_bisect
# Format and lint
uv run ruff format
uv run ruff check --fix
```
## License
MIT License - see [LICENSE](./LICENSE) for details.
## Acknowledgments
- Built with [uv](https://github.com/astral-sh/uv) for fast Python package management
- Inspired by [PEP 723](https://peps.python.org/pep-0723/) inline script metadata
- Uses [rich](https://github.com/Textualize/rich) for beautiful terminal output
Raw data
{
"_id": null,
"home_page": null,
"name": "script-bisect",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "bisect, debugging, dependencies, git, pep723, python, uv",
"author": "uv-bisect contributors",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/18/ac/fbfd9ebaa219a1e198f51386c2cb4e561836edd68d566a47442340a78ca1/script_bisect-0.1.2.tar.gz",
"platform": null,
"description": "# script-bisect\n\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n\nBisect package versions in PEP 723 Python scripts using git bisect and uv.\n\n## Overview\n\n`script-bisect` combines the power of git bisect with PEP 723 inline script metadata to automatically find the commit that introduced a regression in a Python package dependency. It works by:\n\n1. \ud83d\udcc4 **Parsing** your PEP 723 script to extract dependency information\n2. \ud83d\udce5 **Cloning** the package repository automatically\n3. \ud83d\udd04 **Running** git bisect with intelligent test automation\n4. \u270f\ufe0f **Updating** package references for each commit tested\n5. \ud83c\udfaf **Finding** the exact commit that caused the issue\n\nPerfect for debugging package regressions, testing new features, and creating reliable bug reports.\n\n### Super Quick Start \ud83d\ude80\n\nPoint script-bisect directly at a real GitHub issue:\n\n```bash\n# Bisect a real xarray issue directly from GitHub\nuvx script-bisect https://github.com/pydata/xarray/issues/10712 xarray v2025.07.1 v2025.08.0\n```\n\nThat's it! script-bisect will:\n\n1. **Extract** the code from the GitHub issue\n2. **Create** a test script automatically\n3. **Detect** the package and repository\n4. **Run** the bisection to find the problematic commit\n\nFor xarray issue [#10712](https://github.com/pydata/xarray/issues/10712), this will show you exactly which commit introduced the regression!\n\nYou can also omit the REFs and fill them in using using the UI\n\n```bash\n# Bisect a real xarray issue directly from GitHub\nuvx script-bisect https://github.com/pydata/xarray/issues/10712 xarray\n```\n\n## Installation\n\n### Using uvx (Recommended)\n\n```bash\nuvx script-bisect script.py package_name good_ref bad_ref\n```\n\n### Using uv\n\n```bash\nuv tool install script-bisect\nscript-bisect script.py package_name good_ref bad_ref\n```\n\n### Development Installation\n\n```bash\ngit clone https://github.com/user/script-bisect.git\ncd script-bisect\nuv sync --extra dev\nuv run script-bisect --help\n```\n\n## Quick Start\n\n### Try It Now! \ud83d\ude80\n\n### Manual Script Method\n\nYou can also create your own test script:\n\n### 1. Create Your Own Script\n\nCreate a script that demonstrates your issue:\n\n```python\n# /// script\n# requires-python = \">=3.11\"\n# dependencies = [\n# \"xarray@git+https://github.com/pydata/xarray.git@main\",\n# ]\n# ///\n\nimport xarray as xr\nimport numpy as np\n\n# Your reproducer code here\ndata = xr.Dataset({'temp': (['time'], np.random.randn(10))})\nresult = data.some_method() # This might fail in certain versions\nprint(\"\u2705 Test passed!\")\n```\n\n### 2. Run the Bisection\n\n```bash\n# Find when something broke\nscript-bisect bug_report.py xarray v2024.01.0 v2024.03.0\n\n# Find when something was fixed (inverse mode)\nscript-bisect bug_report.py pandas v1.5.0 v2.0.0 --inverse\n```\n\n### 3. Get Results\n\n```\n\ud83d\udd0d script-bisect v0.1.0\nBisect package versions in PEP 723 Python scripts\n\n\ud83d\udce6 Package: xarray\n\ud83d\udd17 Repository: https://github.com/pydata/xarray.git\n\u2705 Good ref: v2024.01.0 (commit: abc123...)\n\u274c Bad ref: v2024.03.0 (commit: def456...)\n\n\ud83d\udd04 Starting bisection (approximately 7 steps)...\n\n\u2728 Found first bad commit:\n\nCommit: 234pqr890...\nAuthor: John Doe <john@example.com>\nDate: 2024-02-15 10:30:00\nMessage: Refactor array indexing logic\n\nView on GitHub: https://github.com/pydata/xarray/commit/234pqr890\n```\n\n## Usage\n\n### Basic Usage\n\n```bash\nscript-bisect SCRIPT PACKAGE GOOD_REF BAD_REF\n```\n\n- **SCRIPT**: Path to your PEP 723 Python script\n- **PACKAGE**: Name of the package to bisect\n- **GOOD_REF**: Git reference (tag/commit/branch) where it works\n- **BAD_REF**: Git reference where it's broken\n\n### Options\n\n- `--repo-url URL`: Override repository URL (auto-detected from git dependencies)\n- `--test-command CMD`: Custom test command (default: `uv run SCRIPT`)\n- `--inverse`: Find when something was fixed (not broken)\n- `--keep-clone`: Keep cloned repository for inspection\n- `--dry-run`: Show what would be done without executing\n- `--verbose`: Enable detailed logging\n- `--yes`: Auto-confirm all prompts for automated usage\n- `--verify-endpoints`: Verify good/bad references before starting\n- `--refresh-cache`: Force refresh of cached repositories and metadata\n- `--full-traceback`: Show full Python tracebacks on errors\n\n### Examples\n\n#### Basic Package Regression\n\n```bash\n# Your script has: numpy>=1.24.0\nscript-bisect reproducer.py numpy 1.24.0 1.26.0\n```\n\n#### Git Dependency Already Present\n\n```bash\n# Your script has: xarray@git+https://github.com/pydata/xarray.git@main\nscript-bisect bug_report.py xarray v2024.01.0 main\n```\n\n#### Custom Repository\n\n```bash\nscript-bisect test.py numpy v1.24.0 main \\\\\n --repo-url https://github.com/numpy/numpy.git\n```\n\n#### Custom Test Command\n\n```bash\nscript-bisect test.py pandas v2.0.0 main \\\\\n --test-command \"python -m pytest {script}\"\n```\n\n#### Finding Fixes (Inverse Mode)\n\n```bash\n# Find when a bug was fixed\nscript-bisect regression_test.py scipy v1.10.0 v1.11.0 --inverse\n```\n\n#### Automated Usage\n\n```bash\n# Auto-confirm all prompts for CI/automated use\nscript-bisect test.py numpy v1.24.0 v1.26.0 --yes --verbose\n\n# Force refresh cached data and verify endpoints\nscript-bisect test.py xarray v2024.01.0 main --refresh-cache --verify-endpoints\n```\n\n#### Advanced Examples\n\n```bash\n# Full automation with error details\nscript-bisect regression.py pandas v1.5.0 v2.0.0 \\\\\n --yes --full-traceback --keep-clone\n\n# Interactive mode with custom test command\nscript-bisect integration_test.py requests v2.28.0 v2.31.0 \\\\\n --test-command \"python -m pytest {script} -v\"\n```\n\n## Requirements\n\n### System Requirements\n\n- **Python 3.11+**\n- **uv** package manager ([installation guide](https://docs.astral.sh/uv/getting-started/installation/))\n- **git** version control\n\n### Script Requirements\n\nYour Python script must contain PEP 723 inline metadata with dependencies:\n\n```python\n# /// script\n# requires-python = \">=3.11\"\n# dependencies = [\n# \"package_name>=1.0\",\n# # OR for git dependencies:\n# \"package_name@git+https://github.com/org/repo.git@ref\",\n# ]\n# ///\n```\n\nThe tool will automatically convert PyPI package specs to git dependencies during bisection.\n\n## Interactive Features\n\n### Parameter Editing\n\nBefore starting bisection, you can interactively modify parameters:\n\n```\n\ud83d\udd04 Bisection Summary\n[s] \ud83d\udcc4 Script test_script.py\n[p] \ud83d\udce6 Package xarray\n[r] \ud83d\udd17 Repository https://github.com/pydata/xarray.git\n[g] \u2705 Good ref v2024.01.0\n[b] \u274c Bad ref v2024.03.0\n[t] \ud83e\uddea Test command uv run test_script.py\n[i] \ud83d\udd04 Mode Normal (find when broken)\n\nPress the highlighted key to edit that parameter, or:\n Enter/y - Start bisection\n n/q - Cancel\n```\n\n- Press any highlighted key (s, p, r, g, b, t, i) to edit that parameter\n- Edit scripts directly in your configured editor (respects `git config core.editor`)\n- Toggle between normal and inverse bisection modes\n- Modify test commands and repository URLs on the fly\n\n### End State Options\n\nAfter bisection completes, choose what to do next:\n\n1. **Exit** - Complete the bisection\n2. **Re-run with different refs** - Try different good/bad references\n3. **Re-run with different script** - Edit or change the test script\n4. **Re-run with modified parameters** - Change package, repo URL, or test command\n\n### Intelligent Caching\n\nscript-bisect includes a smart caching system for better performance:\n\n- **Repository Caching**: Cloned repositories are cached in `~/.cache/script-bisect/repos/`\n- **Metadata Caching**: Package metadata is cached to avoid repeated PyPI lookups\n- **Automatic Updates**: Cached repos are updated with `git fetch` for new commits\n- **Auto-cleanup**: Expired cache entries are cleaned up automatically\n- **Force Refresh**: Use `--refresh-cache` to bypass cache and fetch fresh data\n\nCache locations follow XDG Base Directory standards:\n\n- Linux/macOS: `~/.cache/script-bisect/`\n- Windows: `%LOCALAPPDATA%\\script-bisect\\cache\\`\n\n## How It Works\n\n### 1. Script Analysis\n\n- Parses PEP 723 metadata from your script\n- Validates package dependencies and requirements\n- Auto-detects repository URLs for PyPI packages using multiple sources\n\n### 2. Repository Management\n\n- Clones the package repository (with intelligent caching)\n- Validates that good/bad references exist\n- Updates cached repositories with latest commits\n- Manages cleanup automatically (unless `--keep-clone` is used)\n\n### 3. Bisection Process\n\n- Uses `git bisect run` with an automated test script\n- For each commit, updates your script's dependency reference\n- Runs `uv run script.py` to test the specific commit\n- Returns appropriate exit codes for git bisect (0=good, 1=bad, 125=skip)\n\n### 4. Result Reporting\n\n- Identifies the exact problematic commit\n- Shows commit details (author, date, message)\n- Provides GitHub/GitLab links when possible\n- Offers interactive options for follow-up actions\n\n## Troubleshooting\n\n### Common Issues\n\n**\"Package not found in dependencies\"**\n\n- Ensure the package name matches exactly what's in your dependencies list\n- Use `--verbose` to see available packages\n\n**\"Could not auto-detect repository URL\"**\n\n- Use `--repo-url` to specify the repository manually\n- Ensure the package has repository metadata on PyPI\n\n**\"uv not found\"**\n\n- Install uv: `curl -LsSf https://astral.sh/uv/install.sh | sh`\n- Ensure uv is in your PATH\n\n**Test always fails/passes**\n\n- Check your script logic with `--dry-run`\n- Use `--verbose` to see test output\n- Verify your script correctly demonstrates the issue\n\n### Getting Help\n\n- Check the [troubleshooting guide](./docs/troubleshooting.md)\n- Review example scripts in [`examples/`](./examples/)\n- Open an issue on [GitHub](https://github.com/user/script-bisect/issues)\n\n## Future Features\n\n### Roadmap \ud83d\uddfa\ufe0f\n\n- **Multiple Package Bisection**: Bisect multiple related packages simultaneously\n- **PyPI Metadata Lookup**: Automatic repository detection for more packages\n- **Regression Test Suite**: Generate test suites from bisection results\n- **CI Integration**: GitHub Actions and other CI platform support\n\n## Contributing\n\nWe welcome contributions! See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.\n\n### Development Setup\n\n```bash\ngit clone https://github.com/user/script-bisect.git\ncd script-bisect\nuv sync --extra dev\nuv run pre-commit install\n\n# Run tests\nuv run pytest\nuv run pytest --cov=script_bisect\n\n# Format and lint\nuv run ruff format\nuv run ruff check --fix\n```\n\n## License\n\nMIT License - see [LICENSE](./LICENSE) for details.\n\n## Acknowledgments\n\n- Built with [uv](https://github.com/astral-sh/uv) for fast Python package management\n- Inspired by [PEP 723](https://peps.python.org/pep-0723/) inline script metadata\n- Uses [rich](https://github.com/Textualize/rich) for beautiful terminal output\n",
"bugtrack_url": null,
"license": null,
"summary": "Bisect package versions in PEP 723 Python scripts using git bisect and uv",
"version": "0.1.2",
"project_urls": {
"Documentation": "https://github.com/ianhi/script-bisect#readme",
"Issues": "https://github.com/ianhi/script-bisect/issues",
"Source": "https://github.com/ianhi/script-bisect"
},
"split_keywords": [
"bisect",
" debugging",
" dependencies",
" git",
" pep723",
" python",
" uv"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "dc5dabdf542eecfcebb3ce034bc185e1f0a1d09504261fae91a07babe54e5ee9",
"md5": "a5c9140c53b8fb15eadce0ba60b457d7",
"sha256": "e792db919631c6a121895403e3383f08e4eabec0a5572d1f8ace174eb09256f6"
},
"downloads": -1,
"filename": "script_bisect-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a5c9140c53b8fb15eadce0ba60b457d7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 80116,
"upload_time": "2025-09-10T16:24:57",
"upload_time_iso_8601": "2025-09-10T16:24:57.163736Z",
"url": "https://files.pythonhosted.org/packages/dc/5d/abdf542eecfcebb3ce034bc185e1f0a1d09504261fae91a07babe54e5ee9/script_bisect-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "18acfbfd9ebaa219a1e198f51386c2cb4e561836edd68d566a47442340a78ca1",
"md5": "5daa79ebb2aa88cb083a0c765164224b",
"sha256": "5ee92c131dc7750dce34d12b1779cc00402a9b47c8562131393aa8c7d128621f"
},
"downloads": -1,
"filename": "script_bisect-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "5daa79ebb2aa88cb083a0c765164224b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 5086868,
"upload_time": "2025-09-10T16:24:58",
"upload_time_iso_8601": "2025-09-10T16:24:58.524145Z",
"url": "https://files.pythonhosted.org/packages/18/ac/fbfd9ebaa219a1e198f51386c2cb4e561836edd68d566a47442340a78ca1/script_bisect-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-10 16:24:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ianhi",
"github_project": "script-bisect#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "script-bisect"
}