mirror of
				https://kkgithub.com/actions/setup-python.git
				synced 2025-11-04 04:31:51 +08:00 
			
		
		
		
	Compare commits
	
		
			10 Commits
		
	
	
		
			test-macos
			...
			85595e05bc
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 85595e05bc | |||
| e797f83bcb | |||
| 3d1e2d2ca0 | |||
| 65b071217a | |||
| 5b668cf765 | |||
| f62a0e252f | |||
| 9322b3ca74 | |||
| fbeb884f69 | |||
| 03bb6152f4 | |||
| 36da51d563 | 
							
								
								
									
										2
									
								
								.github/workflows/basic-validation.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/basic-validation.yml
									
									
									
									
										vendored
									
									
								
							@ -14,4 +14,4 @@ jobs:
 | 
				
			|||||||
    name: Basic validation
 | 
					    name: Basic validation
 | 
				
			||||||
    uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main
 | 
					    uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main
 | 
				
			||||||
    with:
 | 
					    with:
 | 
				
			||||||
      node-version: '20.x'
 | 
					      node-version: '24.x'
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
								
							@ -16,4 +16,4 @@ jobs:
 | 
				
			|||||||
    name: Check dist/
 | 
					    name: Check dist/
 | 
				
			||||||
    uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main
 | 
					    uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main
 | 
				
			||||||
    with:
 | 
					    with:
 | 
				
			||||||
      node-version: '20.x'
 | 
					      node-version: '24.x'
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										14
									
								
								.github/workflows/e2e-cache-freethreaded.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/e2e-cache-freethreaded.yml
									
									
									
									
										vendored
									
									
								
							@ -33,7 +33,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
        python-version: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
					        python-version: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@ -60,7 +60,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
        python-version: [3.13.1t, 3.13.2t, 3.13.5t]
 | 
					        python-version: [3.13.1t, 3.13.2t, 3.13.5t]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        id: cache-pipenv
 | 
					        id: cache-pipenv
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
@ -90,7 +90,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
        python-version: [3.13.0, 3.13.1, 3.13.2]
 | 
					        python-version: [3.13.0, 3.13.1, 3.13.2]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Install poetry
 | 
					      - name: Install poetry
 | 
				
			||||||
        run: pipx install poetry
 | 
					        run: pipx install poetry
 | 
				
			||||||
      - name: Init pyproject.toml
 | 
					      - name: Init pyproject.toml
 | 
				
			||||||
@ -122,7 +122,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
        python-version: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
					        python-version: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@ -150,7 +150,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
        python-version: [3.13.1t, 3.13.2t, 3.13.5t]
 | 
					        python-version: [3.13.1t, 3.13.2t, 3.13.5t]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        id: cache-pipenv
 | 
					        id: cache-pipenv
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
@ -181,7 +181,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
        python-version: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
					        python-version: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@ -209,7 +209,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
        python-version: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
					        python-version: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										14
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							@ -46,7 +46,7 @@ jobs:
 | 
				
			|||||||
          - os: windows-latest
 | 
					          - os: windows-latest
 | 
				
			||||||
            python-version: pypy-3.11-v7.x
 | 
					            python-version: pypy-3.11-v7.x
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@ -85,7 +85,7 @@ jobs:
 | 
				
			|||||||
          - os: ubuntu-22.04-arm
 | 
					          - os: ubuntu-22.04-arm
 | 
				
			||||||
            python-version: pypy-3.10-v7.x
 | 
					            python-version: pypy-3.10-v7.x
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        id: cache-pipenv
 | 
					        id: cache-pipenv
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
@ -140,7 +140,7 @@ jobs:
 | 
				
			|||||||
            '3.13'
 | 
					            '3.13'
 | 
				
			||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Install poetry
 | 
					      - name: Install poetry
 | 
				
			||||||
        run: pipx install poetry
 | 
					        run: pipx install poetry
 | 
				
			||||||
      - name: Init pyproject.toml
 | 
					      - name: Init pyproject.toml
 | 
				
			||||||
@ -184,7 +184,7 @@ jobs:
 | 
				
			|||||||
          - os: windows-latest
 | 
					          - os: windows-latest
 | 
				
			||||||
            python-version: pypy-3.11-v7.x
 | 
					            python-version: pypy-3.11-v7.x
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@ -222,7 +222,7 @@ jobs:
 | 
				
			|||||||
          - os: ubuntu-22.04-arm
 | 
					          - os: ubuntu-22.04-arm
 | 
				
			||||||
            python-version: pypy-3.11-v7.x
 | 
					            python-version: pypy-3.11-v7.x
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        id: cache-pipenv
 | 
					        id: cache-pipenv
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
@ -268,7 +268,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
        python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
 | 
					        python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@ -296,7 +296,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
        python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
 | 
					        python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python
 | 
					      - name: Setup Python
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.github/workflows/e2e-tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/e2e-tests.yml
									
									
									
									
										vendored
									
									
								
							@ -29,7 +29,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Run with setup-python 3.9.13
 | 
					      - name: Run with setup-python 3.9.13
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checking out
 | 
					      - name: Checking out
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
      - name: Publish
 | 
					      - name: Publish
 | 
				
			||||||
        id: publish
 | 
					        id: publish
 | 
				
			||||||
        uses: actions/publish-immutable-action@v0.0.4
 | 
					        uses: actions/publish-immutable-action@v0.0.4
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Update the ${{ env.TAG_NAME }} tag
 | 
					      - name: Update the ${{ env.TAG_NAME }} tag
 | 
				
			||||||
        uses: actions/publish-action@v0.3.0
 | 
					        uses: actions/publish-action@v0.4.0
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          source-tag: ${{ env.TAG_NAME }}
 | 
					          source-tag: ${{ env.TAG_NAME }}
 | 
				
			||||||
          slack-webhook: ${{ secrets.SLACK_WEBHOOK }}
 | 
					          slack-webhook: ${{ secrets.SLACK_WEBHOOK }}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										6
									
								
								.github/workflows/test-graalpy.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/test-graalpy.yml
									
									
									
									
										vendored
									
									
								
							@ -35,7 +35,7 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python ${{ matrix.graalpy }}
 | 
					      - name: setup-python ${{ matrix.graalpy }}
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -86,7 +86,7 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python ${{ matrix.graalpy }}
 | 
					      - name: setup-python ${{ matrix.graalpy }}
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -108,7 +108,7 @@ jobs:
 | 
				
			|||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, macos-latest, macos-13]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup GraalPy and check latest
 | 
					      - name: Setup GraalPy and check latest
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        id: graalpy
 | 
					        id: graalpy
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										10
									
								
								.github/workflows/test-pypy.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/test-pypy.yml
									
									
									
									
										vendored
									
									
								
							@ -46,7 +46,7 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python ${{ matrix.pypy }}
 | 
					      - name: setup-python ${{ matrix.pypy }}
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -98,7 +98,7 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python ${{ matrix.pypy }}
 | 
					      - name: setup-python ${{ matrix.pypy }}
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -150,7 +150,7 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python ${{ matrix.pypy }}
 | 
					      - name: setup-python ${{ matrix.pypy }}
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -181,7 +181,7 @@ jobs:
 | 
				
			|||||||
            macos-13
 | 
					            macos-13
 | 
				
			||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup PyPy and check latest
 | 
					      - name: Setup PyPy and check latest
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@ -223,7 +223,7 @@ jobs:
 | 
				
			|||||||
            macos-13
 | 
					            macos-13
 | 
				
			||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup PyPy and check latest
 | 
					      - name: Setup PyPy and check latest
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										106
									
								
								.github/workflows/test-python-freethreaded.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										106
									
								
								.github/workflows/test-python-freethreaded.yml
									
									
									
									
										vendored
									
									
								
							@ -33,7 +33,7 @@ jobs:
 | 
				
			|||||||
        python: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
					        python: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python ${{ matrix.python }}
 | 
					      - name: setup-python ${{ matrix.python }}
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -70,7 +70,7 @@ jobs:
 | 
				
			|||||||
        python: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
					        python: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: build-version-file ${{ matrix.python }}
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
        run: echo ${{ matrix.python }} > .python-version
 | 
					        run: echo ${{ matrix.python }} > .python-version
 | 
				
			||||||
@ -110,7 +110,7 @@ jobs:
 | 
				
			|||||||
        python: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
					        python: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: build-version-file ${{ matrix.python }}
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
        run: echo ${{ matrix.python }} > .python-version
 | 
					        run: echo ${{ matrix.python }} > .python-version
 | 
				
			||||||
@ -148,7 +148,7 @@ jobs:
 | 
				
			|||||||
        python: [3.13.0, 3.13.1, 3.13.2]
 | 
					        python: [3.13.0, 3.13.1, 3.13.2]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: build-version-file ${{ matrix.python }}
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
@ -189,7 +189,7 @@ jobs:
 | 
				
			|||||||
        python: [3.13.0, 3.13.1, 3.13.2]
 | 
					        python: [3.13.0, 3.13.1, 3.13.2]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: build-version-file ${{ matrix.python }}
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
@ -230,7 +230,7 @@ jobs:
 | 
				
			|||||||
        python: [3.13.0t, 3.13.1t, 3.13.2t, 3.14t-dev]
 | 
					        python: [3.13.0t, 3.13.1t, 3.13.2t, 3.14t-dev]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: build-tool-versions-file ${{ matrix.python }}
 | 
					      - name: build-tool-versions-file ${{ matrix.python }}
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
@ -242,6 +242,86 @@ jobs:
 | 
				
			|||||||
        with:
 | 
					        with:
 | 
				
			||||||
          python-version-file: .tool-versions
 | 
					          python-version-file: .tool-versions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  setup-versions-from-pipfile-with-python_version:
 | 
				
			||||||
 | 
					    name: Setup ${{ matrix.python }} ${{ matrix.os }} Pipfile
 | 
				
			||||||
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      fail-fast: false
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        os:
 | 
				
			||||||
 | 
					          [
 | 
				
			||||||
 | 
					            macos-latest,
 | 
				
			||||||
 | 
					            windows-latest,
 | 
				
			||||||
 | 
					            ubuntu-22.04,
 | 
				
			||||||
 | 
					            ubuntu-22.04-arm,
 | 
				
			||||||
 | 
					            macos-13,
 | 
				
			||||||
 | 
					            ubuntu-latest,
 | 
				
			||||||
 | 
					            ubuntu-24.04-arm
 | 
				
			||||||
 | 
					          ]
 | 
				
			||||||
 | 
					        python: [3.13t, 3.14t-dev]
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Checkout
 | 
				
			||||||
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          echo '[requires]
 | 
				
			||||||
 | 
					            python_version = "${{ matrix.python }}"
 | 
				
			||||||
 | 
					          ' > Pipfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: setup-python ${{ matrix.python }}
 | 
				
			||||||
 | 
					        id: setup-python
 | 
				
			||||||
 | 
					        uses: ./
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          python-version-file: Pipfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Check python-path
 | 
				
			||||||
 | 
					        run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
 | 
				
			||||||
 | 
					        shell: bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Run simple code
 | 
				
			||||||
 | 
					        run: python -c 'import math; print(math.factorial(5))'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  setup-versions-from-pipfile-with-python_full_version:
 | 
				
			||||||
 | 
					    name: Setup ${{ matrix.python }} ${{ matrix.os }} .tool-versions file
 | 
				
			||||||
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      fail-fast: false
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        os:
 | 
				
			||||||
 | 
					          [
 | 
				
			||||||
 | 
					            macos-latest,
 | 
				
			||||||
 | 
					            windows-latest,
 | 
				
			||||||
 | 
					            ubuntu-22.04,
 | 
				
			||||||
 | 
					            ubuntu-22.04-arm,
 | 
				
			||||||
 | 
					            macos-13,
 | 
				
			||||||
 | 
					            ubuntu-latest,
 | 
				
			||||||
 | 
					            ubuntu-24.04-arm
 | 
				
			||||||
 | 
					          ]
 | 
				
			||||||
 | 
					        python: [3.13.0t, 3.13.1t, 3.13.2t, 3.14t-dev]
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Checkout
 | 
				
			||||||
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          echo '[requires]
 | 
				
			||||||
 | 
					            python_full_version = "${{ matrix.python }}"
 | 
				
			||||||
 | 
					          ' > Pipfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: setup-python ${{ matrix.python }}
 | 
				
			||||||
 | 
					        id: setup-python
 | 
				
			||||||
 | 
					        uses: ./
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          python-version-file: Pipfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Check python-path
 | 
				
			||||||
 | 
					        run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
 | 
				
			||||||
 | 
					        shell: bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Run simple code
 | 
				
			||||||
 | 
					        run: python -c 'import math; print(math.factorial(5))'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setup-pre-release-version-from-manifest:
 | 
					  setup-pre-release-version-from-manifest:
 | 
				
			||||||
    name: Setup 3.14.0-alpha.6 ${{ matrix.os }}
 | 
					    name: Setup 3.14.0-alpha.6 ${{ matrix.os }}
 | 
				
			||||||
    runs-on: ${{ matrix.os }}
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
@ -260,7 +340,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python 3.14.0-alpha.6
 | 
					      - name: setup-python 3.14.0-alpha.6
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -297,7 +377,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python 3.14t-dev
 | 
					      - name: setup-python 3.14t-dev
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -334,7 +414,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python 3.14t
 | 
					      - name: setup-python 3.14t
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -373,7 +453,7 @@ jobs:
 | 
				
			|||||||
        python: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
					        python: [3.13.0t, 3.13.1t, 3.13.2t]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python ${{ matrix.python }}
 | 
					      - name: setup-python ${{ matrix.python }}
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -405,7 +485,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
        python-version: [3.13t, 3.14t-dev]
 | 
					        python-version: [3.13t, 3.14t-dev]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python and check latest
 | 
					      - name: Setup Python and check latest
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
@ -431,7 +511,7 @@ jobs:
 | 
				
			|||||||
            macos-13
 | 
					            macos-13
 | 
				
			||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python and check latest
 | 
					      - name: Setup Python and check latest
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
@ -462,7 +542,7 @@ jobs:
 | 
				
			|||||||
        python: [3.13.1, 3.13.2, 3.14-dev, 3.14.0-alpha.6]
 | 
					        python: [3.13.1, 3.13.2, 3.14-dev, 3.14.0-alpha.6]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
      - name: setup-python ${{ matrix.python }}
 | 
					      - name: setup-python ${{ matrix.python }}
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										124
									
								
								.github/workflows/test-python.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										124
									
								
								.github/workflows/test-python.yml
									
									
									
									
										vendored
									
									
								
							@ -33,7 +33,7 @@ jobs:
 | 
				
			|||||||
        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
 | 
					        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python ${{ matrix.python }}
 | 
					      - name: setup-python ${{ matrix.python }}
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -77,7 +77,7 @@ jobs:
 | 
				
			|||||||
        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
 | 
					        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: build-version-file ${{ matrix.python }}
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
        run: echo ${{ matrix.python }} > .python-version
 | 
					        run: echo ${{ matrix.python }} > .python-version
 | 
				
			||||||
@ -124,7 +124,7 @@ jobs:
 | 
				
			|||||||
        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
 | 
					        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: build-version-file ${{ matrix.python }}
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
        run: echo ${{ matrix.python }} > .python-version
 | 
					        run: echo ${{ matrix.python }} > .python-version
 | 
				
			||||||
@ -169,7 +169,7 @@ jobs:
 | 
				
			|||||||
        python: [3.9.13, 3.10.11, 3.11.9, '==3.12.3', 3.13.2]
 | 
					        python: [3.9.13, 3.10.11, 3.11.9, '==3.12.3', 3.13.2]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: build-version-file ${{ matrix.python }}
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
@ -219,7 +219,7 @@ jobs:
 | 
				
			|||||||
        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
 | 
					        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: build-version-file ${{ matrix.python }}
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
@ -272,7 +272,7 @@ jobs:
 | 
				
			|||||||
            python: graalpy-24.1.2
 | 
					            python: graalpy-24.1.2
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: build-tool-versions-file ${{ matrix.python }}
 | 
					      - name: build-tool-versions-file ${{ matrix.python }}
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
@ -284,6 +284,106 @@ jobs:
 | 
				
			|||||||
        with:
 | 
					        with:
 | 
				
			||||||
          python-version-file: .tool-versions
 | 
					          python-version-file: .tool-versions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  setup-versions-from-pipfile-with-python_version:
 | 
				
			||||||
 | 
					    name: Setup ${{ matrix.python }} ${{ matrix.os }} Pipfile with python_version
 | 
				
			||||||
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      fail-fast: false
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        os:
 | 
				
			||||||
 | 
					          [
 | 
				
			||||||
 | 
					            macos-latest,
 | 
				
			||||||
 | 
					            windows-latest,
 | 
				
			||||||
 | 
					            ubuntu-22.04,
 | 
				
			||||||
 | 
					            ubuntu-22.04-arm,
 | 
				
			||||||
 | 
					            macos-13,
 | 
				
			||||||
 | 
					            ubuntu-latest,
 | 
				
			||||||
 | 
					            ubuntu-24.04-arm
 | 
				
			||||||
 | 
					          ]
 | 
				
			||||||
 | 
					        python: [3.9.13, 3.10.11, 3.11.9, 3.13.2]
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Checkout
 | 
				
			||||||
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          echo '[requires]
 | 
				
			||||||
 | 
					            python_version = "${{ matrix.python }}"
 | 
				
			||||||
 | 
					          ' > Pipfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: setup-python ${{ matrix.python }}
 | 
				
			||||||
 | 
					        id: setup-python
 | 
				
			||||||
 | 
					        uses: ./
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          python-version-file: Pipfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Check python-path
 | 
				
			||||||
 | 
					        run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
 | 
				
			||||||
 | 
					        shell: bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Validate version
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          $pythonVersion = (python --version)
 | 
				
			||||||
 | 
					          if ("Python ${{ matrix.python }}".replace("==", "") -ne "$pythonVersion"){
 | 
				
			||||||
 | 
					            Write-Host "The current version is $pythonVersion; expected version is ${{ matrix.python }}"
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          $pythonVersion
 | 
				
			||||||
 | 
					        shell: pwsh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Run simple code
 | 
				
			||||||
 | 
					        run: python -c 'import math; print(math.factorial(5))'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  setup-versions-from-pipfile-with-python_full_version:
 | 
				
			||||||
 | 
					    name: Setup ${{ matrix.python }} ${{ matrix.os }} Pipfile with python_full_version
 | 
				
			||||||
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      fail-fast: false
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        os:
 | 
				
			||||||
 | 
					          [
 | 
				
			||||||
 | 
					            macos-latest,
 | 
				
			||||||
 | 
					            windows-latest,
 | 
				
			||||||
 | 
					            ubuntu-22.04,
 | 
				
			||||||
 | 
					            ubuntu-22.04-arm,
 | 
				
			||||||
 | 
					            macos-13,
 | 
				
			||||||
 | 
					            ubuntu-latest,
 | 
				
			||||||
 | 
					            ubuntu-24.04-arm
 | 
				
			||||||
 | 
					          ]
 | 
				
			||||||
 | 
					        python: [3.9.13, 3.10.11, 3.11.9, 3.13.2]
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Checkout
 | 
				
			||||||
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: build-version-file ${{ matrix.python }}
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          echo '[requires]
 | 
				
			||||||
 | 
					            python_full_version = "${{ matrix.python }}"
 | 
				
			||||||
 | 
					          ' > Pipfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: setup-python ${{ matrix.python }}
 | 
				
			||||||
 | 
					        id: setup-python
 | 
				
			||||||
 | 
					        uses: ./
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          python-version-file: Pipfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Check python-path
 | 
				
			||||||
 | 
					        run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
 | 
				
			||||||
 | 
					        shell: bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Validate version
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          $pythonVersion = (python --version)
 | 
				
			||||||
 | 
					          if ("Python ${{ matrix.python }}".replace("==", "") -ne "$pythonVersion"){
 | 
				
			||||||
 | 
					            Write-Host "The current version is $pythonVersion; expected version is ${{ matrix.python }}"
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          $pythonVersion
 | 
				
			||||||
 | 
					        shell: pwsh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Run simple code
 | 
				
			||||||
 | 
					        run: python -c 'import math; print(math.factorial(5))'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setup-pre-release-version-from-manifest:
 | 
					  setup-pre-release-version-from-manifest:
 | 
				
			||||||
    name: Setup 3.14.0-alpha.6 ${{ matrix.os }}
 | 
					    name: Setup 3.14.0-alpha.6 ${{ matrix.os }}
 | 
				
			||||||
    runs-on: ${{ matrix.os }}
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
@ -302,7 +402,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python 3.14.0-alpha.6
 | 
					      - name: setup-python 3.14.0-alpha.6
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -345,7 +445,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python 3.14-dev
 | 
					      - name: setup-python 3.14-dev
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -382,7 +482,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python 3.14
 | 
					      - name: setup-python 3.14
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -421,7 +521,7 @@ jobs:
 | 
				
			|||||||
        python: ['3.9', '3.10', '3.11', '3.12', '3.13']
 | 
					        python: ['3.9', '3.10', '3.11', '3.12', '3.13']
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout
 | 
					      - name: Checkout
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: setup-python ${{ matrix.python }}
 | 
					      - name: setup-python ${{ matrix.python }}
 | 
				
			||||||
        id: setup-python
 | 
					        id: setup-python
 | 
				
			||||||
@ -453,7 +553,7 @@ jobs:
 | 
				
			|||||||
          ]
 | 
					          ]
 | 
				
			||||||
        python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
 | 
					        python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python and check latest
 | 
					      - name: Setup Python and check latest
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@ -485,7 +585,7 @@ jobs:
 | 
				
			|||||||
            macos-13
 | 
					            macos-13
 | 
				
			||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Python and check latest
 | 
					      - name: Setup Python and check latest
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: "@types/node"
 | 
					name: "@types/node"
 | 
				
			||||||
version: 20.11.25
 | 
					version: 24.1.0
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: TypeScript definitions for node
 | 
					summary: TypeScript definitions for node
 | 
				
			||||||
homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node
 | 
					homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.licenses/npm/brace-expansion.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/brace-expansion.dep.yml
									
									
									
										generated
									
									
									
								
							@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: brace-expansion
 | 
					name: brace-expansion
 | 
				
			||||||
version: 1.1.11
 | 
					version: 1.1.12
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: Brace expansion as known from sh/bash
 | 
					summary: Brace expansion as known from sh/bash
 | 
				
			||||||
homepage: https://github.com/juliangruber/brace-expansion
 | 
					homepage: https://github.com/juliangruber/brace-expansion
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										32
									
								
								.licenses/npm/call-bind-apply-helpers.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/call-bind-apply-helpers.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: call-bind-apply-helpers
 | 
				
			||||||
 | 
					version: 1.0.2
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Helper functions around Function call/apply/bind, for use in `call-bind`
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/call-bind-apply-helpers#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/dunder-proto.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/dunder-proto.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: dunder-proto
 | 
				
			||||||
 | 
					version: 1.0.1
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: If available, the `Object.prototype.__proto__` accessor and mutator, call-bound
 | 
				
			||||||
 | 
					homepage: https://github.com/es-shims/dunder-proto#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 ECMAScript Shims
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/es-define-property.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/es-define-property.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: es-define-property
 | 
				
			||||||
 | 
					version: 1.0.1
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: "`Object.defineProperty`, but not IE 8's broken one."
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/es-define-property#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/es-errors.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/es-errors.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: es-errors
 | 
				
			||||||
 | 
					version: 1.3.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: A simple cache for a few of the JS Error constructors.
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/es-errors#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/es-object-atoms.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/es-object-atoms.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: es-object-atoms
 | 
				
			||||||
 | 
					version: 1.1.1
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: 'ES Object-related atoms: Object, ToObject, RequireObjectCoercible'
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/es-object-atoms#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/es-set-tostringtag.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/es-set-tostringtag.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: es-set-tostringtag
 | 
				
			||||||
 | 
					version: 2.1.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: A helper to optimistically set Symbol.toStringTag, when possible.
 | 
				
			||||||
 | 
					homepage: https://github.com/es-shims/es-set-tostringtag#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2022 ECMAScript Shims
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
@ -1,10 +1,10 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: form-data
 | 
					name: form-data
 | 
				
			||||||
version: 2.5.1
 | 
					version: 2.5.5
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: A library to create readable "multipart/form-data" streams. Can be used to
 | 
					summary: A library to create readable "multipart/form-data" streams. Can be used to
 | 
				
			||||||
  submit forms and file uploads to other web applications.
 | 
					  submit forms and file uploads to other web applications.
 | 
				
			||||||
homepage: https://github.com/form-data/form-data#readme
 | 
					homepage:
 | 
				
			||||||
license: mit
 | 
					license: mit
 | 
				
			||||||
licenses:
 | 
					licenses:
 | 
				
			||||||
- sources: License
 | 
					- sources: License
 | 
				
			||||||
@ -1,10 +1,10 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: form-data
 | 
					name: form-data
 | 
				
			||||||
version: 4.0.0
 | 
					version: 4.0.4
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: A library to create readable "multipart/form-data" streams. Can be used to
 | 
					summary: A library to create readable "multipart/form-data" streams. Can be used to
 | 
				
			||||||
  submit forms and file uploads to other web applications.
 | 
					  submit forms and file uploads to other web applications.
 | 
				
			||||||
homepage: https://github.com/form-data/form-data#readme
 | 
					homepage:
 | 
				
			||||||
license: mit
 | 
					license: mit
 | 
				
			||||||
licenses:
 | 
					licenses:
 | 
				
			||||||
- sources: License
 | 
					- sources: License
 | 
				
			||||||
@ -28,6 +28,6 @@ licenses:
 | 
				
			|||||||
     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
					     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
					     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
				
			||||||
     THE SOFTWARE.
 | 
					     THE SOFTWARE.
 | 
				
			||||||
- sources: Readme.md
 | 
					- sources: README.md
 | 
				
			||||||
  text: Form-Data is released under the [MIT](License) license.
 | 
					  text: Form-Data is released under the [MIT](License) license.
 | 
				
			||||||
notices: []
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/function-bind.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/function-bind.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: function-bind
 | 
				
			||||||
 | 
					version: 1.1.2
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Implementation of Function.prototype.bind
 | 
				
			||||||
 | 
					homepage: https://github.com/Raynos/function-bind
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |+
 | 
				
			||||||
 | 
					    Copyright (c) 2013 Raynos.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in
 | 
				
			||||||
 | 
					    all copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
				
			||||||
 | 
					    THE SOFTWARE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
 | 
					...
 | 
				
			||||||
							
								
								
									
										33
									
								
								.licenses/npm/get-intrinsic.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.licenses/npm/get-intrinsic.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: get-intrinsic
 | 
				
			||||||
 | 
					version: 1.3.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Get and robustly cache all JS language-level intrinsics at first require
 | 
				
			||||||
 | 
					  time
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/get-intrinsic#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2020 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/get-proto.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/get-proto.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: get-proto
 | 
				
			||||||
 | 
					version: 1.0.1
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Robustly get the [[Prototype]] of an object
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/get-proto#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2025 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/gopd.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/gopd.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: gopd
 | 
				
			||||||
 | 
					version: 1.2.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: "`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation."
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/gopd#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2022 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/has-symbols.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/has-symbols.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: has-symbols
 | 
				
			||||||
 | 
					version: 1.1.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Determine if the JS environment has Symbol support. Supports spec, or shams.
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/has-symbols#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2016 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										33
									
								
								.licenses/npm/has-tostringtag.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.licenses/npm/has-tostringtag.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: has-tostringtag
 | 
				
			||||||
 | 
					version: 1.0.2
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Determine if the JS environment has `Symbol.toStringTag` support. Supports
 | 
				
			||||||
 | 
					  spec, or shams.
 | 
				
			||||||
 | 
					homepage: https://github.com/inspect-js/has-tostringtag#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2021 Inspect JS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/hasown.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/hasown.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: hasown
 | 
				
			||||||
 | 
					version: 2.0.2
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: A robust, ES3 compatible, "has own property" predicate.
 | 
				
			||||||
 | 
					homepage: https://github.com/inspect-js/hasOwn#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) Jordan Harband and contributors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/math-intrinsics.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/math-intrinsics.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: math-intrinsics
 | 
				
			||||||
 | 
					version: 1.1.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: ES Math-related intrinsics and helpers, robustly cached.
 | 
				
			||||||
 | 
					homepage: https://github.com/es-shims/math-intrinsics#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 ECMAScript Shims
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										34
									
								
								.licenses/npm/safe-buffer.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								.licenses/npm/safe-buffer.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: safe-buffer
 | 
				
			||||||
 | 
					version: 5.2.1
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Safer Node.js Buffer API
 | 
				
			||||||
 | 
					homepage: https://github.com/feross/safe-buffer
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    The MIT License (MIT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) Feross Aboukhadijeh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in
 | 
				
			||||||
 | 
					    all copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
				
			||||||
 | 
					    THE SOFTWARE.
 | 
				
			||||||
 | 
					- sources: README.md
 | 
				
			||||||
 | 
					  text: MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org)
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										2
									
								
								.licenses/npm/undici-types.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/undici-types.dep.yml
									
									
									
										generated
									
									
									
								
							@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: undici-types
 | 
					name: undici-types
 | 
				
			||||||
version: 5.26.5
 | 
					version: 7.8.0
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: A stand-alone types package for Undici
 | 
					summary: A stand-alone types package for Undici
 | 
				
			||||||
homepage: https://undici.nodejs.org
 | 
					homepage: https://undici.nodejs.org
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.licenses/npm/undici.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/undici.dep.yml
									
									
									
										generated
									
									
									
								
							@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: undici
 | 
					name: undici
 | 
				
			||||||
version: 5.28.5
 | 
					version: 5.29.0
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: An HTTP/1.1 client, written from scratch for Node.js
 | 
					summary: An HTTP/1.1 client, written from scratch for Node.js
 | 
				
			||||||
homepage: https://undici.nodejs.org
 | 
					homepage: https://undici.nodejs.org
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										20
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								README.md
									
									
									
									
									
								
							@ -18,8 +18,8 @@ See [action.yml](action.yml)
 | 
				
			|||||||
**Python**
 | 
					**Python**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13' 
 | 
					    python-version: '3.13' 
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -28,8 +28,8 @@ steps:
 | 
				
			|||||||
**PyPy**
 | 
					**PyPy**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5 
 | 
					- uses: actions/setup-python@v6 
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: 'pypy3.10' 
 | 
					    python-version: 'pypy3.10' 
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -38,8 +38,8 @@ steps:
 | 
				
			|||||||
**GraalPy**
 | 
					**GraalPy**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5 
 | 
					- uses: actions/setup-python@v6 
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: 'graalpy-24.0' 
 | 
					    python-version: 'graalpy-24.0' 
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -48,8 +48,8 @@ steps:
 | 
				
			|||||||
**Free threaded Python**
 | 
					**Free threaded Python**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13t'
 | 
					    python-version: '3.13t'
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -83,8 +83,8 @@ The action defaults to searching for a dependency file (`requirements.txt` or `p
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13'
 | 
					    python-version: '3.13'
 | 
				
			||||||
    cache: 'pip' # caching pip dependencies
 | 
					    cache: 'pip' # caching pip dependencies
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										51
									
								
								__tests__/data/poetry.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										51
									
								
								__tests__/data/poetry.lock
									
									
									
										generated
									
									
									
								
							@ -1,4 +1,4 @@
 | 
				
			|||||||
# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
 | 
					# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "altgraph"
 | 
					name = "altgraph"
 | 
				
			||||||
@ -6,6 +6,7 @@ version = "0.17.4"
 | 
				
			|||||||
description = "Python graph (network) package"
 | 
					description = "Python graph (network) package"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = "*"
 | 
					python-versions = "*"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "altgraph-0.17.4-py2.py3-none-any.whl", hash = "sha256:642743b4750de17e655e6711601b077bc6598dbfa3ba5fa2b2a35ce12b508dff"},
 | 
					    {file = "altgraph-0.17.4-py2.py3-none-any.whl", hash = "sha256:642743b4750de17e655e6711601b077bc6598dbfa3ba5fa2b2a35ce12b508dff"},
 | 
				
			||||||
    {file = "altgraph-0.17.4.tar.gz", hash = "sha256:1b5afbb98f6c4dcadb2e2ae6ab9fa994bbb8c1d75f4fa96d340f9437ae454406"},
 | 
					    {file = "altgraph-0.17.4.tar.gz", hash = "sha256:1b5afbb98f6c4dcadb2e2ae6ab9fa994bbb8c1d75f4fa96d340f9437ae454406"},
 | 
				
			||||||
@ -17,6 +18,7 @@ version = "4.0.1"
 | 
				
			|||||||
description = "the modular source code checker: pep8 pyflakes and co"
 | 
					description = "the modular source code checker: pep8 pyflakes and co"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = ">=3.6"
 | 
					python-versions = ">=3.6"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"},
 | 
					    {file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"},
 | 
				
			||||||
    {file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"},
 | 
					    {file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"},
 | 
				
			||||||
@ -33,6 +35,8 @@ version = "8.5.0"
 | 
				
			|||||||
description = "Read metadata from Python packages"
 | 
					description = "Read metadata from Python packages"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = ">=3.8"
 | 
					python-versions = ">=3.8"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
 | 
					markers = "python_version == \"3.9\""
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"},
 | 
					    {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"},
 | 
				
			||||||
    {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"},
 | 
					    {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"},
 | 
				
			||||||
@ -42,12 +46,12 @@ files = [
 | 
				
			|||||||
zipp = ">=3.20"
 | 
					zipp = ">=3.20"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[package.extras]
 | 
					[package.extras]
 | 
				
			||||||
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
 | 
					check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""]
 | 
				
			||||||
cover = ["pytest-cov"]
 | 
					cover = ["pytest-cov"]
 | 
				
			||||||
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
 | 
					doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
 | 
				
			||||||
enabler = ["pytest-enabler (>=2.2)"]
 | 
					enabler = ["pytest-enabler (>=2.2)"]
 | 
				
			||||||
perf = ["ipython"]
 | 
					perf = ["ipython"]
 | 
				
			||||||
test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"]
 | 
					test = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"]
 | 
				
			||||||
type = ["pytest-mypy"]
 | 
					type = ["pytest-mypy"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
@ -56,6 +60,8 @@ version = "1.16.3"
 | 
				
			|||||||
description = "Mach-O header analysis and editing"
 | 
					description = "Mach-O header analysis and editing"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = "*"
 | 
					python-versions = "*"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
 | 
					markers = "sys_platform == \"darwin\""
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "macholib-1.16.3-py2.py3-none-any.whl", hash = "sha256:0e315d7583d38b8c77e815b1ecbdbf504a8258d8b3e17b61165c6feb60d18f2c"},
 | 
					    {file = "macholib-1.16.3-py2.py3-none-any.whl", hash = "sha256:0e315d7583d38b8c77e815b1ecbdbf504a8258d8b3e17b61165c6feb60d18f2c"},
 | 
				
			||||||
    {file = "macholib-1.16.3.tar.gz", hash = "sha256:07ae9e15e8e4cd9a788013d81f5908b3609aa76f9b1421bae9c4d7606ec86a30"},
 | 
					    {file = "macholib-1.16.3.tar.gz", hash = "sha256:07ae9e15e8e4cd9a788013d81f5908b3609aa76f9b1421bae9c4d7606ec86a30"},
 | 
				
			||||||
@ -70,6 +76,7 @@ version = "0.6.1"
 | 
				
			|||||||
description = "McCabe checker, plugin for flake8"
 | 
					description = "McCabe checker, plugin for flake8"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = "*"
 | 
					python-versions = "*"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
 | 
					    {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
 | 
				
			||||||
    {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
 | 
					    {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
 | 
				
			||||||
@ -81,6 +88,7 @@ version = "24.2"
 | 
				
			|||||||
description = "Core utilities for Python packages"
 | 
					description = "Core utilities for Python packages"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = ">=3.8"
 | 
					python-versions = ">=3.8"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
 | 
					    {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
 | 
				
			||||||
    {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
 | 
					    {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
 | 
				
			||||||
@ -92,6 +100,8 @@ version = "2024.8.26"
 | 
				
			|||||||
description = "Python PE parsing module"
 | 
					description = "Python PE parsing module"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = ">=3.6.0"
 | 
					python-versions = ">=3.6.0"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
 | 
					markers = "sys_platform == \"win32\""
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "pefile-2024.8.26-py3-none-any.whl", hash = "sha256:76f8b485dcd3b1bb8166f1128d395fa3d87af26360c2358fb75b80019b957c6f"},
 | 
					    {file = "pefile-2024.8.26-py3-none-any.whl", hash = "sha256:76f8b485dcd3b1bb8166f1128d395fa3d87af26360c2358fb75b80019b957c6f"},
 | 
				
			||||||
    {file = "pefile-2024.8.26.tar.gz", hash = "sha256:3ff6c5d8b43e8c37bb6e6dd5085658d658a7a0bdcd20b6a07b1fcfc1c4e9d632"},
 | 
					    {file = "pefile-2024.8.26.tar.gz", hash = "sha256:3ff6c5d8b43e8c37bb6e6dd5085658d658a7a0bdcd20b6a07b1fcfc1c4e9d632"},
 | 
				
			||||||
@ -103,6 +113,7 @@ version = "2.8.0"
 | 
				
			|||||||
description = "Python style guide checker"
 | 
					description = "Python style guide checker"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 | 
					python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"},
 | 
					    {file = "pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"},
 | 
				
			||||||
    {file = "pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"},
 | 
					    {file = "pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"},
 | 
				
			||||||
@ -114,6 +125,7 @@ version = "2.4.0"
 | 
				
			|||||||
description = "passive checker of Python programs"
 | 
					description = "passive checker of Python programs"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 | 
					python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"},
 | 
					    {file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"},
 | 
				
			||||||
    {file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"},
 | 
					    {file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"},
 | 
				
			||||||
@ -125,6 +137,7 @@ version = "6.10.0"
 | 
				
			|||||||
description = "PyInstaller bundles a Python application and all its dependencies into a single package."
 | 
					description = "PyInstaller bundles a Python application and all its dependencies into a single package."
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = "<3.14,>=3.8"
 | 
					python-versions = "<3.14,>=3.8"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "pyinstaller-6.10.0-py3-none-macosx_10_13_universal2.whl", hash = "sha256:d60fb22859e11483af735aec115fdde09467cdbb29edd9844839f2c920b748c0"},
 | 
					    {file = "pyinstaller-6.10.0-py3-none-macosx_10_13_universal2.whl", hash = "sha256:d60fb22859e11483af735aec115fdde09467cdbb29edd9844839f2c920b748c0"},
 | 
				
			||||||
    {file = "pyinstaller-6.10.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:46d75359668993ddd98630a3669dc5249f3c446e35239b43bc7f4155bc574748"},
 | 
					    {file = "pyinstaller-6.10.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:46d75359668993ddd98630a3669dc5249f3c446e35239b43bc7f4155bc574748"},
 | 
				
			||||||
@ -160,6 +173,7 @@ version = "2025.1"
 | 
				
			|||||||
description = "Community maintained hooks for PyInstaller"
 | 
					description = "Community maintained hooks for PyInstaller"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = ">=3.8"
 | 
					python-versions = ">=3.8"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "pyinstaller_hooks_contrib-2025.1-py3-none-any.whl", hash = "sha256:d3c799470cbc0bda60dcc8e6b4ab976777532b77621337f2037f558905e3a8e9"},
 | 
					    {file = "pyinstaller_hooks_contrib-2025.1-py3-none-any.whl", hash = "sha256:d3c799470cbc0bda60dcc8e6b4ab976777532b77621337f2037f558905e3a8e9"},
 | 
				
			||||||
    {file = "pyinstaller_hooks_contrib-2025.1.tar.gz", hash = "sha256:130818f9e9a0a7f2261f1fd66054966a3a50c99d000981c5d1db11d3ad0c6ab2"},
 | 
					    {file = "pyinstaller_hooks_contrib-2025.1.tar.gz", hash = "sha256:130818f9e9a0a7f2261f1fd66054966a3a50c99d000981c5d1db11d3ad0c6ab2"},
 | 
				
			||||||
@ -176,6 +190,8 @@ version = "0.2.3"
 | 
				
			|||||||
description = "A (partial) reimplementation of pywin32 using ctypes/cffi"
 | 
					description = "A (partial) reimplementation of pywin32 using ctypes/cffi"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = ">=3.6"
 | 
					python-versions = ">=3.6"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
 | 
					markers = "sys_platform == \"win32\""
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755"},
 | 
					    {file = "pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755"},
 | 
				
			||||||
    {file = "pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8"},
 | 
					    {file = "pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8"},
 | 
				
			||||||
@ -183,23 +199,24 @@ files = [
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "setuptools"
 | 
					name = "setuptools"
 | 
				
			||||||
version = "75.3.2"
 | 
					version = "80.9.0"
 | 
				
			||||||
description = "Easily download, build, install, upgrade, and uninstall Python packages"
 | 
					description = "Easily download, build, install, upgrade, and uninstall Python packages"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = ">=3.8"
 | 
					python-versions = ">=3.9"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "setuptools-75.3.2-py3-none-any.whl", hash = "sha256:90ab613b6583fc02d5369cbca13ea26ea0e182d1df2d943ee9cbe81d4c61add9"},
 | 
					    {file = "setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922"},
 | 
				
			||||||
    {file = "setuptools-75.3.2.tar.gz", hash = "sha256:3c1383e1038b68556a382c1e8ded8887cd20141b0eb5708a6c8d277de49364f5"},
 | 
					    {file = "setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c"},
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[package.extras]
 | 
					[package.extras]
 | 
				
			||||||
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"]
 | 
					check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.8.0) ; sys_platform != \"cygwin\""]
 | 
				
			||||||
core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
 | 
					core = ["importlib_metadata (>=6) ; python_version < \"3.10\"", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"]
 | 
				
			||||||
cover = ["pytest-cov"]
 | 
					cover = ["pytest-cov"]
 | 
				
			||||||
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
 | 
					doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
 | 
				
			||||||
enabler = ["pytest-enabler (>=2.2)"]
 | 
					enabler = ["pytest-enabler (>=2.2)"]
 | 
				
			||||||
test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "ruff (<=0.7.1)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
 | 
					test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
 | 
				
			||||||
type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.12.*)", "pytest-mypy"]
 | 
					type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.14.*)", "pytest-mypy"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "zipp"
 | 
					name = "zipp"
 | 
				
			||||||
@ -207,20 +224,22 @@ version = "3.20.2"
 | 
				
			|||||||
description = "Backport of pathlib-compatible object wrapper for zip files"
 | 
					description = "Backport of pathlib-compatible object wrapper for zip files"
 | 
				
			||||||
optional = false
 | 
					optional = false
 | 
				
			||||||
python-versions = ">=3.8"
 | 
					python-versions = ">=3.8"
 | 
				
			||||||
 | 
					groups = ["main"]
 | 
				
			||||||
 | 
					markers = "python_version == \"3.9\""
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    {file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"},
 | 
					    {file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"},
 | 
				
			||||||
    {file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"},
 | 
					    {file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"},
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[package.extras]
 | 
					[package.extras]
 | 
				
			||||||
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
 | 
					check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""]
 | 
				
			||||||
cover = ["pytest-cov"]
 | 
					cover = ["pytest-cov"]
 | 
				
			||||||
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
 | 
					doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
 | 
				
			||||||
enabler = ["pytest-enabler (>=2.2)"]
 | 
					enabler = ["pytest-enabler (>=2.2)"]
 | 
				
			||||||
test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
 | 
					test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
 | 
				
			||||||
type = ["pytest-mypy"]
 | 
					type = ["pytest-mypy"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[metadata]
 | 
					[metadata]
 | 
				
			||||||
lock-version = "2.0"
 | 
					lock-version = "2.1"
 | 
				
			||||||
python-versions = ">=3.8,<3.14"
 | 
					python-versions = ">=3.9,<3.14"
 | 
				
			||||||
content-hash = "6db8fff0987f3dadb02cbf0e510a2d04b01ab2dc6d7b0fb32a0e33a8d30b3a58"
 | 
					content-hash = "9a14798bf374c540031f893ff18f9b187bd984391e9da99d13c0e6710b7de09e"
 | 
				
			||||||
 | 
				
			|||||||
@ -5,10 +5,10 @@ description = ""
 | 
				
			|||||||
authors = ["Your Name <you@example.com>"]
 | 
					authors = ["Your Name <you@example.com>"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[tool.poetry.dependencies]
 | 
					[tool.poetry.dependencies]
 | 
				
			||||||
python = ">=3.8,<3.14"
 | 
					python = ">=3.9,<3.14"
 | 
				
			||||||
flake8 = "^4.0.1"
 | 
					flake8 = "^4.0.1"
 | 
				
			||||||
pyinstaller = "6.10.0"
 | 
					pyinstaller = "6.10.0"
 | 
				
			||||||
 | 
					setuptools = ">=78.1.1" 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[tool.poetry.dev-dependencies]
 | 
					[tool.poetry.dev-dependencies]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
certifi==2020.6.20
 | 
					certifi==2020.6.20
 | 
				
			||||||
chardet==3.0.4
 | 
					chardet==3.0.4
 | 
				
			||||||
docutils==0.16
 | 
					docutils==0.16
 | 
				
			||||||
idna==2.10
 | 
					idna==3.7
 | 
				
			||||||
Kivy==2.0.0rc3
 | 
					Kivy==2.0.0rc3
 | 
				
			||||||
Kivy-Garden==0.1.4
 | 
					Kivy-Garden==0.1.4
 | 
				
			||||||
packaging==20.7
 | 
					packaging==20.7
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ docutils==0.16
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
future==0.18.2; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'
 | 
					future==0.18.2; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
idna==2.9
 | 
					idna==3.7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
itsdangerous==1.1.0
 | 
					itsdangerous==1.1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,149 +0,0 @@
 | 
				
			|||||||
import * as core from '@actions/core';
 | 
					 | 
				
			||||||
import * as fs from 'fs';
 | 
					 | 
				
			||||||
import * as path from 'path';
 | 
					 | 
				
			||||||
import {cacheDependencies} from '../src/setup-python';
 | 
					 | 
				
			||||||
import {getCacheDistributor} from '../src/cache-distributions/cache-factory';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
jest.mock('fs', () => {
 | 
					 | 
				
			||||||
  const actualFs = jest.requireActual('fs');
 | 
					 | 
				
			||||||
  return {
 | 
					 | 
				
			||||||
    ...actualFs,
 | 
					 | 
				
			||||||
    promises: {
 | 
					 | 
				
			||||||
      access: jest.fn(),
 | 
					 | 
				
			||||||
      mkdir: jest.fn(),
 | 
					 | 
				
			||||||
      copyFile: jest.fn(),
 | 
					 | 
				
			||||||
      writeFile: jest.fn(),
 | 
					 | 
				
			||||||
      appendFile: jest.fn()
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
jest.mock('@actions/core');
 | 
					 | 
				
			||||||
jest.mock('../src/cache-distributions/cache-factory');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const mockedFsPromises = fs.promises as jest.Mocked<typeof fs.promises>;
 | 
					 | 
				
			||||||
const mockedCore = core as jest.Mocked<typeof core>;
 | 
					 | 
				
			||||||
const mockedGetCacheDistributor = getCacheDistributor as jest.Mock;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
describe('cacheDependencies', () => {
 | 
					 | 
				
			||||||
  const mockRestoreCache = jest.fn();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  beforeEach(() => {
 | 
					 | 
				
			||||||
    jest.clearAllMocks();
 | 
					 | 
				
			||||||
    process.env.GITHUB_ACTION_PATH = '/github/action';
 | 
					 | 
				
			||||||
    process.env.GITHUB_WORKSPACE = '/github/workspace';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    mockedCore.getInput.mockReturnValue('nested/deps.lock');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Simulate file exists by resolving access without error
 | 
					 | 
				
			||||||
    mockedFsPromises.access.mockImplementation(async p => {
 | 
					 | 
				
			||||||
      const pathStr = typeof p === 'string' ? p : p.toString();
 | 
					 | 
				
			||||||
      if (pathStr === '/github/action/nested/deps.lock') {
 | 
					 | 
				
			||||||
        return Promise.resolve();
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      // Simulate directory doesn't exist to test mkdir
 | 
					 | 
				
			||||||
      if (pathStr === path.dirname('/github/workspace/nested/deps.lock')) {
 | 
					 | 
				
			||||||
        return Promise.reject(new Error('no dir'));
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      return Promise.resolve();
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Simulate mkdir success
 | 
					 | 
				
			||||||
    mockedFsPromises.mkdir.mockResolvedValue(undefined);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Simulate copyFile success
 | 
					 | 
				
			||||||
    mockedFsPromises.copyFile.mockResolvedValue(undefined);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    mockedGetCacheDistributor.mockReturnValue({restoreCache: mockRestoreCache});
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  it('copies the dependency file and resolves the path with directory structure', async () => {
 | 
					 | 
				
			||||||
    await cacheDependencies('pip', '3.12');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const sourcePath = path.resolve('/github/action', 'nested/deps.lock');
 | 
					 | 
				
			||||||
    const targetPath = path.resolve('/github/workspace', 'nested/deps.lock');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    expect(mockedFsPromises.access).toHaveBeenCalledWith(
 | 
					 | 
				
			||||||
      sourcePath,
 | 
					 | 
				
			||||||
      fs.constants.F_OK
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    expect(mockedFsPromises.mkdir).toHaveBeenCalledWith(
 | 
					 | 
				
			||||||
      path.dirname(targetPath),
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        recursive: true
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    expect(mockedFsPromises.copyFile).toHaveBeenCalledWith(
 | 
					 | 
				
			||||||
      sourcePath,
 | 
					 | 
				
			||||||
      targetPath
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    expect(mockedCore.info).toHaveBeenCalledWith(
 | 
					 | 
				
			||||||
      `Copied ${sourcePath} to ${targetPath}`
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    expect(mockedCore.info).toHaveBeenCalledWith(
 | 
					 | 
				
			||||||
      `Resolved cache-dependency-path: nested/deps.lock`
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    expect(mockRestoreCache).toHaveBeenCalled();
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  it('warns if the dependency file does not exist', async () => {
 | 
					 | 
				
			||||||
    // Simulate file does not exist by rejecting access
 | 
					 | 
				
			||||||
    mockedFsPromises.access.mockRejectedValue(new Error('file not found'));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    await cacheDependencies('pip', '3.12');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    expect(mockedCore.warning).toHaveBeenCalledWith(
 | 
					 | 
				
			||||||
      expect.stringContaining('does not exist')
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    expect(mockedFsPromises.copyFile).not.toHaveBeenCalled();
 | 
					 | 
				
			||||||
    expect(mockRestoreCache).toHaveBeenCalled();
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  it('warns if file copy fails', async () => {
 | 
					 | 
				
			||||||
    // Simulate copyFile failure
 | 
					 | 
				
			||||||
    mockedFsPromises.copyFile.mockRejectedValue(new Error('copy failed'));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    await cacheDependencies('pip', '3.12');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    expect(mockedCore.warning).toHaveBeenCalledWith(
 | 
					 | 
				
			||||||
      expect.stringContaining('Failed to copy file')
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    expect(mockRestoreCache).toHaveBeenCalled();
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  it('skips path logic if no input is provided', async () => {
 | 
					 | 
				
			||||||
    mockedCore.getInput.mockReturnValue('');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    await cacheDependencies('pip', '3.12');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    expect(mockedFsPromises.copyFile).not.toHaveBeenCalled();
 | 
					 | 
				
			||||||
    expect(mockedCore.warning).not.toHaveBeenCalled();
 | 
					 | 
				
			||||||
    expect(mockRestoreCache).toHaveBeenCalled();
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  it('does not copy if dependency file is already inside the workspace but still sets resolved path', async () => {
 | 
					 | 
				
			||||||
    // Simulate cacheDependencyPath inside workspace
 | 
					 | 
				
			||||||
    mockedCore.getInput.mockReturnValue('deps.lock');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Override sourcePath and targetPath to be equal
 | 
					 | 
				
			||||||
    const actionPath = '/github/workspace'; // same path for action and workspace
 | 
					 | 
				
			||||||
    process.env.GITHUB_ACTION_PATH = actionPath;
 | 
					 | 
				
			||||||
    process.env.GITHUB_WORKSPACE = actionPath;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // access resolves to simulate file exists
 | 
					 | 
				
			||||||
    mockedFsPromises.access.mockResolvedValue();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    await cacheDependencies('pip', '3.12');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const sourcePath = path.resolve(actionPath, 'deps.lock');
 | 
					 | 
				
			||||||
    const targetPath = sourcePath; // same path
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    expect(mockedFsPromises.copyFile).not.toHaveBeenCalled();
 | 
					 | 
				
			||||||
    expect(mockedCore.info).toHaveBeenCalledWith(
 | 
					 | 
				
			||||||
      `Dependency file is already inside the workspace: ${sourcePath}`
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    expect(mockedCore.info).toHaveBeenCalledWith(
 | 
					 | 
				
			||||||
      `Resolved cache-dependency-path: deps.lock`
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    expect(mockRestoreCache).toHaveBeenCalled();
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
@ -12,6 +12,7 @@ import {
 | 
				
			|||||||
  getVersionInputFromFile,
 | 
					  getVersionInputFromFile,
 | 
				
			||||||
  getVersionsInputFromPlainFile,
 | 
					  getVersionsInputFromPlainFile,
 | 
				
			||||||
  getVersionInputFromTomlFile,
 | 
					  getVersionInputFromTomlFile,
 | 
				
			||||||
 | 
					  getVersionInputFromPipfileFile,
 | 
				
			||||||
  getNextPageUrl,
 | 
					  getNextPageUrl,
 | 
				
			||||||
  isGhes,
 | 
					  isGhes,
 | 
				
			||||||
  IS_WINDOWS,
 | 
					  IS_WINDOWS,
 | 
				
			||||||
@ -244,6 +245,44 @@ describe('Version from file test', () => {
 | 
				
			|||||||
      expect(_fn(toolVersionFilePath)).toEqual(['3.14t-dev']);
 | 
					      expect(_fn(toolVersionFilePath)).toEqual(['3.14t-dev']);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it.each([getVersionInputFromPipfileFile, getVersionInputFromFile])(
 | 
				
			||||||
 | 
					    'Version from python_version in Pipfile',
 | 
				
			||||||
 | 
					    async _fn => {
 | 
				
			||||||
 | 
					      await io.mkdirP(tempDir);
 | 
				
			||||||
 | 
					      const pythonVersionFileName = 'Pipfile';
 | 
				
			||||||
 | 
					      const pythonVersionFilePath = path.join(tempDir, pythonVersionFileName);
 | 
				
			||||||
 | 
					      const pythonVersion = '3.13';
 | 
				
			||||||
 | 
					      const pythonVersionFileContent = `[requires]\npython_version = "${pythonVersion}"`;
 | 
				
			||||||
 | 
					      fs.writeFileSync(pythonVersionFilePath, pythonVersionFileContent);
 | 
				
			||||||
 | 
					      expect(_fn(pythonVersionFilePath)).toEqual([pythonVersion]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it.each([getVersionInputFromPipfileFile, getVersionInputFromFile])(
 | 
				
			||||||
 | 
					    'Version from python_full_version in Pipfile',
 | 
				
			||||||
 | 
					    async _fn => {
 | 
				
			||||||
 | 
					      await io.mkdirP(tempDir);
 | 
				
			||||||
 | 
					      const pythonVersionFileName = 'Pipfile';
 | 
				
			||||||
 | 
					      const pythonVersionFilePath = path.join(tempDir, pythonVersionFileName);
 | 
				
			||||||
 | 
					      const pythonVersion = '3.13.0';
 | 
				
			||||||
 | 
					      const pythonVersionFileContent = `[requires]\npython_full_version = "${pythonVersion}"`;
 | 
				
			||||||
 | 
					      fs.writeFileSync(pythonVersionFilePath, pythonVersionFileContent);
 | 
				
			||||||
 | 
					      expect(_fn(pythonVersionFilePath)).toEqual([pythonVersion]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it.each([getVersionInputFromPipfileFile, getVersionInputFromFile])(
 | 
				
			||||||
 | 
					    'Pipfile undefined version',
 | 
				
			||||||
 | 
					    async _fn => {
 | 
				
			||||||
 | 
					      await io.mkdirP(tempDir);
 | 
				
			||||||
 | 
					      const pythonVersionFileName = 'Pipfile';
 | 
				
			||||||
 | 
					      const pythonVersionFilePath = path.join(tempDir, pythonVersionFileName);
 | 
				
			||||||
 | 
					      const pythonVersionFileContent = ``;
 | 
				
			||||||
 | 
					      fs.writeFileSync(pythonVersionFilePath, pythonVersionFileContent);
 | 
				
			||||||
 | 
					      expect(_fn(pythonVersionFilePath)).toEqual([]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('getNextPageUrl', () => {
 | 
					describe('getNextPageUrl', () => {
 | 
				
			||||||
 | 
				
			|||||||
@ -39,7 +39,7 @@ outputs:
 | 
				
			|||||||
  python-path:
 | 
					  python-path:
 | 
				
			||||||
    description: "The absolute path to the Python or PyPy executable."
 | 
					    description: "The absolute path to the Python or PyPy executable."
 | 
				
			||||||
runs:
 | 
					runs:
 | 
				
			||||||
  using: 'node20'
 | 
					  using: 'node24'
 | 
				
			||||||
  main: 'dist/setup/index.js'
 | 
					  main: 'dist/setup/index.js'
 | 
				
			||||||
  post: 'dist/cache-save/index.js'
 | 
					  post: 'dist/cache-save/index.js'
 | 
				
			||||||
  post-if: success()
 | 
					  post-if: success()
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1353
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1353
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1434
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1434
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -32,8 +32,8 @@ If there is a specific version of Python that you need and you don't want to wor
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.12.6' 
 | 
					    python-version: '3.12.6' 
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -46,8 +46,8 @@ You can specify **only a major and minor version** if you are okay with the most
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13' 
 | 
					    python-version: '3.13' 
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -60,8 +60,8 @@ You can specify the version with **prerelease tag** to download and set up an ac
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.14.0-alpha.1'
 | 
					    python-version: '3.14.0-alpha.1'
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -71,8 +71,8 @@ It's also possible to use **x.y-dev syntax** to download and set up the latest p
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.14-dev'
 | 
					    python-version: '3.14-dev'
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -84,8 +84,8 @@ Free threaded Python is only available starting with the 3.13 release.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13t'
 | 
					    python-version: '3.13t'
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -95,8 +95,8 @@ Note that the **t** suffix is not `semver` syntax. If you wish to specify a rang
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '>=3.13'
 | 
					    python-version: '>=3.13'
 | 
				
			||||||
    freethreaded: true
 | 
					    freethreaded: true
 | 
				
			||||||
@ -109,8 +109,8 @@ You can also use several types of ranges that are specified in [semver](https://
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '>=3.9 <3.14'
 | 
					    python-version: '>=3.9 <3.14'
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -120,8 +120,8 @@ steps:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13.0-alpha - 3.13.0'
 | 
					    python-version: '3.13.0-alpha - 3.13.0'
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -131,8 +131,8 @@ steps:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.x'
 | 
					    python-version: '3.x'
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -164,8 +164,8 @@ jobs:
 | 
				
			|||||||
        - 'pypy3.10' # the latest available version of PyPy that supports Python 3.10
 | 
					        - 'pypy3.10' # the latest available version of PyPy that supports Python 3.10
 | 
				
			||||||
        - 'pypy3.10-v7.3.17' # Python 3.10 and PyPy 7.3.17
 | 
					        - 'pypy3.10-v7.3.17' # Python 3.10 and PyPy 7.3.17
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v4
 | 
					    - uses: actions/checkout@v5
 | 
				
			||||||
    - uses: actions/setup-python@v5
 | 
					    - uses: actions/setup-python@v6
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        python-version: ${{ matrix.python-version }}
 | 
					        python-version: ${{ matrix.python-version }}
 | 
				
			||||||
    - run: python my_script.py
 | 
					    - run: python my_script.py
 | 
				
			||||||
@ -182,8 +182,8 @@ jobs:
 | 
				
			|||||||
  build:
 | 
					  build:
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v4
 | 
					    - uses: actions/checkout@v5
 | 
				
			||||||
    - uses: actions/setup-python@v5
 | 
					    - uses: actions/setup-python@v6
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        python-version: |
 | 
					        python-version: |
 | 
				
			||||||
            3.11
 | 
					            3.11
 | 
				
			||||||
@ -199,8 +199,8 @@ jobs:
 | 
				
			|||||||
  build:
 | 
					  build:
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v4
 | 
					    - uses: actions/checkout@v5
 | 
				
			||||||
    - uses: actions/setup-python@v5
 | 
					    - uses: actions/setup-python@v6
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        python-version: |
 | 
					        python-version: |
 | 
				
			||||||
            pypy-3.10-v7.3.x
 | 
					            pypy-3.10-v7.3.x
 | 
				
			||||||
@ -216,8 +216,8 @@ jobs:
 | 
				
			|||||||
  build:
 | 
					  build:
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v4
 | 
					    - uses: actions/checkout@v5
 | 
				
			||||||
    - uses: actions/setup-python@v5
 | 
					    - uses: actions/setup-python@v6
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        python-version: |
 | 
					        python-version: |
 | 
				
			||||||
            3.11
 | 
					            3.11
 | 
				
			||||||
@ -241,9 +241,9 @@ jobs:
 | 
				
			|||||||
        python-version: ['3.x', 'pypy3.8', 'pypy3.9' ]
 | 
					        python-version: ['3.x', 'pypy3.8', 'pypy3.9' ]
 | 
				
			||||||
    name: Python ${{ matrix.python-version }} sample
 | 
					    name: Python ${{ matrix.python-version }} sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Set up Python
 | 
					      - name: Set up Python
 | 
				
			||||||
        uses: actions/setup-python@v5
 | 
					        uses: actions/setup-python@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          python-version: ${{ matrix.python-version }}
 | 
					          python-version: ${{ matrix.python-version }}
 | 
				
			||||||
          architecture: x64
 | 
					          architecture: x64
 | 
				
			||||||
@ -267,9 +267,9 @@ jobs:
 | 
				
			|||||||
          - os: windows-latest
 | 
					          - os: windows-latest
 | 
				
			||||||
            python-version: '3.9'
 | 
					            python-version: '3.9'
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Set up Python
 | 
					      - name: Set up Python
 | 
				
			||||||
        uses: actions/setup-python@v5
 | 
					        uses: actions/setup-python@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          python-version: ${{ matrix.python-version }}
 | 
					          python-version: ${{ matrix.python-version }}
 | 
				
			||||||
      - name: Display Python version
 | 
					      - name: Display Python version
 | 
				
			||||||
@ -285,8 +285,8 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version-file: '.python-version' # Read python version from a file .python-version
 | 
					    python-version-file: '.python-version' # Read python version from a file .python-version
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -294,8 +294,8 @@ steps:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version-file: 'pyproject.toml' # Read python version from a file pyproject.toml
 | 
					    python-version-file: 'pyproject.toml' # Read python version from a file pyproject.toml
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
@ -303,13 +303,22 @@ steps:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version-file: '.tool-versions' # Read python version from a file .tool-versions
 | 
					    python-version-file: '.tool-versions' # Read python version from a file .tool-versions
 | 
				
			||||||
- run: python my_script.py
 | 
					- run: python my_script.py
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    python-version-file: 'Pipfile' # Read python version from a file Pipfile
 | 
				
			||||||
 | 
					- run: python my_script.py
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Check latest version
 | 
					## Check latest version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The `check-latest` flag defaults to `false`. Use the default or set `check-latest` to `false` if you prefer stability and if you want to ensure a specific `Python or PyPy` version is always used.
 | 
					The `check-latest` flag defaults to `false`. Use the default or set `check-latest` to `false` if you prefer stability and if you want to ensure a specific `Python or PyPy` version is always used.
 | 
				
			||||||
@ -318,8 +327,8 @@ If `check-latest` is set to `true`, the action first checks if the cached versio
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
  - uses: actions/checkout@v4
 | 
					  - uses: actions/checkout@v5
 | 
				
			||||||
  - uses: actions/setup-python@v5
 | 
					  - uses: actions/setup-python@v6
 | 
				
			||||||
    with:
 | 
					    with:
 | 
				
			||||||
      python-version: '3.13'
 | 
					      python-version: '3.13'
 | 
				
			||||||
      check-latest: true
 | 
					      check-latest: true
 | 
				
			||||||
@ -333,8 +342,8 @@ steps:
 | 
				
			|||||||
**Caching pipenv dependencies:**
 | 
					**Caching pipenv dependencies:**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13'
 | 
					    python-version: '3.13'
 | 
				
			||||||
    cache: 'pipenv'
 | 
					    cache: 'pipenv'
 | 
				
			||||||
@ -346,10 +355,10 @@ steps:
 | 
				
			|||||||
**Caching poetry dependencies:**
 | 
					**Caching poetry dependencies:**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- name: Install poetry
 | 
					- name: Install poetry
 | 
				
			||||||
  run: pipx install poetry
 | 
					  run: pipx install poetry
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13'
 | 
					    python-version: '3.13'
 | 
				
			||||||
    cache: 'poetry'
 | 
					    cache: 'poetry'
 | 
				
			||||||
@ -361,8 +370,8 @@ steps:
 | 
				
			|||||||
**Using a list of file paths to cache dependencies**
 | 
					**Using a list of file paths to cache dependencies**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13'
 | 
					    python-version: '3.13'
 | 
				
			||||||
    cache: 'pipenv'
 | 
					    cache: 'pipenv'
 | 
				
			||||||
@ -376,8 +385,8 @@ steps:
 | 
				
			|||||||
**Using wildcard patterns to cache dependencies**
 | 
					**Using wildcard patterns to cache dependencies**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13'
 | 
					    python-version: '3.13'
 | 
				
			||||||
    cache: 'pip'
 | 
					    cache: 'pip'
 | 
				
			||||||
@ -388,8 +397,8 @@ steps:
 | 
				
			|||||||
**Using a list of wildcard patterns to cache dependencies**
 | 
					**Using a list of wildcard patterns to cache dependencies**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13'
 | 
					    python-version: '3.13'
 | 
				
			||||||
    cache: 'pip'
 | 
					    cache: 'pip'
 | 
				
			||||||
@ -403,8 +412,8 @@ steps:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-python@v5
 | 
					- uses: actions/setup-python@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    python-version: '3.13'
 | 
					    python-version: '3.13'
 | 
				
			||||||
    cache: 'pip'
 | 
					    cache: 'pip'
 | 
				
			||||||
@ -412,7 +421,7 @@ steps:
 | 
				
			|||||||
- run: pip install -e .
 | 
					- run: pip install -e .
 | 
				
			||||||
  # Or pip install -e '.[test]' to install test dependencies
 | 
					  # Or pip install -e '.[test]' to install test dependencies
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Note: cache-dependency-path supports files located outside the workspace root by copying them into the workspace to enable proper caching.
 | 
					
 | 
				
			||||||
# Outputs and environment variables
 | 
					# Outputs and environment variables
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Outputs
 | 
					## Outputs
 | 
				
			||||||
@ -426,8 +435,8 @@ jobs:
 | 
				
			|||||||
  build:
 | 
					  build:
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v4
 | 
					    - uses: actions/checkout@v5
 | 
				
			||||||
    - uses: actions/setup-python@v5
 | 
					    - uses: actions/setup-python@v6
 | 
				
			||||||
      id: cp312
 | 
					      id: cp312
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        python-version: "3.9.0 - 3.12.0"
 | 
					        python-version: "3.9.0 - 3.12.0"
 | 
				
			||||||
@ -443,8 +452,8 @@ jobs:
 | 
				
			|||||||
  build:
 | 
					  build:
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v4
 | 
					    - uses: actions/checkout@v5
 | 
				
			||||||
    - uses: actions/setup-python@v5
 | 
					    - uses: actions/setup-python@v6
 | 
				
			||||||
      id: cp313
 | 
					      id: cp313
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        python-version: "3.13"
 | 
					        python-version: "3.13"
 | 
				
			||||||
@ -459,8 +468,8 @@ jobs:
 | 
				
			|||||||
  build:
 | 
					  build:
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v4
 | 
					    - uses: actions/checkout@v5
 | 
				
			||||||
    - uses: actions/setup-python@v5
 | 
					    - uses: actions/setup-python@v6
 | 
				
			||||||
      id: cp313
 | 
					      id: cp313
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        python-version: "3.13.0"
 | 
					        python-version: "3.13.0"
 | 
				
			||||||
@ -468,16 +477,16 @@ jobs:
 | 
				
			|||||||
    - run: echo '${{ steps.cp313.outputs.cache-hit }}' # true if cache-hit occurred on the primary key
 | 
					    - run: echo '${{ steps.cp313.outputs.cache-hit }}' # true if cache-hit occurred on the primary key
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Environment variables
 | 
					### Environment variables
 | 
				
			||||||
 | 
					
 | 
				
			||||||
These environment variables become available after setup-python action execution:
 | 
					These environment variables become available after setup-python action execution:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| **Env.variable**    | **Description**|
 | 
					| **Env.variable**    | **Description**|
 | 
				
			||||||
| ----------- | ----------- |
 | 
					|----------------------|-------------|
 | 
				
			||||||
| pythonLocation      |Contains the absolute path to the folder where the requested version of Python or PyPy is installed|
 | 
					| `pythonLocation`     | Contains the absolute path to the folder where the requested version of Python, PyPy, or GraalPy is installed. <br><br>**Executable location by implementation:** <br>• **CPython** – `$pythonLocation/bin/python` (Linux/macOS), `$pythonLocation/python.exe` (Windows) <br>• **PyPy** – `$pythonLocation/bin/python` (Linux/macOS), `$pythonLocation/python.exe` (Windows) <br>• **GraalPy** – `$pythonLocation/bin/python` (Linux/macOS) <br><br>Note: CPython versions include a symlink or copy of the Python executable at the root, while PyPy and GraalPy retain upstream directory layouts. |
 | 
				
			||||||
| Python_ROOT_DIR   | https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython        |
 | 
					| `Python_ROOT_DIR`    | https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython |
 | 
				
			||||||
| Python2_ROOT_DIR   |https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2|
 | 
					| `Python2_ROOT_DIR`   | https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2 |
 | 
				
			||||||
| Python3_ROOT_DIR   |https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3|
 | 
					| `Python3_ROOT_DIR`   | https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3 |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Using `update-environment` flag
 | 
					## Using `update-environment` flag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -490,8 +499,8 @@ Such a requirement on side-effect could be because you don't want your composite
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
 steps:
 | 
					 steps:
 | 
				
			||||||
   - uses: actions/checkout@v4
 | 
					   - uses: actions/checkout@v5
 | 
				
			||||||
   - uses: actions/setup-python@v5
 | 
					   - uses: actions/setup-python@v6
 | 
				
			||||||
     id: cp313
 | 
					     id: cp313
 | 
				
			||||||
     with:
 | 
					     with:
 | 
				
			||||||
       python-version: '3.13'
 | 
					       python-version: '3.13'
 | 
				
			||||||
@ -636,8 +645,8 @@ jobs:
 | 
				
			|||||||
        python_version: ["3.11", "3.12", "3.13"]
 | 
					        python_version: ["3.11", "3.12", "3.13"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - uses: actions/setup-python@v5
 | 
					      - uses: actions/setup-python@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          python-version: "${{ matrix.python_version }}"
 | 
					          python-version: "${{ matrix.python_version }}"
 | 
				
			||||||
          allow-prereleases: true
 | 
					          allow-prereleases: true
 | 
				
			||||||
@ -651,9 +660,9 @@ The version of Pip should be specified in the format `major`, `major.minor`, or
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
      steps:
 | 
					      steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Set up Python
 | 
					      - name: Set up Python
 | 
				
			||||||
        uses: actions/setup-python@v5
 | 
					        uses: actions/setup-python@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          python-version: '3.13'
 | 
					          python-version: '3.13'
 | 
				
			||||||
          pip-version: '25.0.1'
 | 
					          pip-version: '25.0.1'
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										262
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										262
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -1,12 +1,12 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "setup-python",
 | 
					  "name": "setup-python",
 | 
				
			||||||
  "version": "5.0.0",
 | 
					  "version": "6.0.0",
 | 
				
			||||||
  "lockfileVersion": 3,
 | 
					  "lockfileVersion": 3,
 | 
				
			||||||
  "requires": true,
 | 
					  "requires": true,
 | 
				
			||||||
  "packages": {
 | 
					  "packages": {
 | 
				
			||||||
    "": {
 | 
					    "": {
 | 
				
			||||||
      "name": "setup-python",
 | 
					      "name": "setup-python",
 | 
				
			||||||
      "version": "5.0.0",
 | 
					      "version": "6.0.0",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@actions/cache": "^4.0.3",
 | 
					        "@actions/cache": "^4.0.3",
 | 
				
			||||||
@ -21,7 +21,7 @@
 | 
				
			|||||||
      },
 | 
					      },
 | 
				
			||||||
      "devDependencies": {
 | 
					      "devDependencies": {
 | 
				
			||||||
        "@types/jest": "^29.5.12",
 | 
					        "@types/jest": "^29.5.12",
 | 
				
			||||||
        "@types/node": "^20.11.25",
 | 
					        "@types/node": "^24.1.0",
 | 
				
			||||||
        "@types/semver": "^7.7.0",
 | 
					        "@types/semver": "^7.7.0",
 | 
				
			||||||
        "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
					        "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
				
			||||||
        "@typescript-eslint/parser": "^5.54.0",
 | 
					        "@typescript-eslint/parser": "^5.54.0",
 | 
				
			||||||
@ -35,6 +35,9 @@
 | 
				
			|||||||
        "prettier": "^3.5.3",
 | 
					        "prettier": "^3.5.3",
 | 
				
			||||||
        "ts-jest": "^29.3.2",
 | 
					        "ts-jest": "^29.3.2",
 | 
				
			||||||
        "typescript": "^5.4.2"
 | 
					        "typescript": "^5.4.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=24.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@aashutoshrathi/word-wrap": {
 | 
					    "node_modules/@aashutoshrathi/word-wrap": {
 | 
				
			||||||
@ -205,12 +208,15 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@azure/core-http/node_modules/form-data": {
 | 
					    "node_modules/@azure/core-http/node_modules/form-data": {
 | 
				
			||||||
      "version": "4.0.0",
 | 
					      "version": "4.0.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
 | 
					      "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "asynckit": "^0.4.0",
 | 
					        "asynckit": "^0.4.0",
 | 
				
			||||||
        "combined-stream": "^1.0.8",
 | 
					        "combined-stream": "^1.0.8",
 | 
				
			||||||
 | 
					        "es-set-tostringtag": "^2.1.0",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2",
 | 
				
			||||||
        "mime-types": "^2.1.12"
 | 
					        "mime-types": "^2.1.12"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
@ -1590,11 +1596,12 @@
 | 
				
			|||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/node": {
 | 
					    "node_modules/@types/node": {
 | 
				
			||||||
      "version": "20.11.25",
 | 
					      "version": "24.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==",
 | 
					      "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "undici-types": "~5.26.4"
 | 
					        "undici-types": "~7.8.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/node-fetch": {
 | 
					    "node_modules/@types/node-fetch": {
 | 
				
			||||||
@ -1607,12 +1614,15 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/node-fetch/node_modules/form-data": {
 | 
					    "node_modules/@types/node-fetch/node_modules/form-data": {
 | 
				
			||||||
      "version": "4.0.0",
 | 
					      "version": "4.0.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
 | 
					      "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "asynckit": "^0.4.0",
 | 
					        "asynckit": "^0.4.0",
 | 
				
			||||||
        "combined-stream": "^1.0.8",
 | 
					        "combined-stream": "^1.0.8",
 | 
				
			||||||
 | 
					        "es-set-tostringtag": "^2.1.0",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2",
 | 
				
			||||||
        "mime-types": "^2.1.12"
 | 
					        "mime-types": "^2.1.12"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
@ -2120,9 +2130,10 @@
 | 
				
			|||||||
      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
 | 
					      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/brace-expansion": {
 | 
					    "node_modules/brace-expansion": {
 | 
				
			||||||
      "version": "1.1.11",
 | 
					      "version": "1.1.12",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
 | 
				
			||||||
      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
 | 
					      "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "balanced-match": "^1.0.0",
 | 
					        "balanced-match": "^1.0.0",
 | 
				
			||||||
        "concat-map": "0.0.1"
 | 
					        "concat-map": "0.0.1"
 | 
				
			||||||
@ -2199,6 +2210,19 @@
 | 
				
			|||||||
      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
 | 
					      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/call-bind-apply-helpers": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "function-bind": "^1.1.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/callsites": {
 | 
					    "node_modules/callsites": {
 | 
				
			||||||
      "version": "3.1.0",
 | 
					      "version": "3.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
 | 
				
			||||||
@ -2484,6 +2508,20 @@
 | 
				
			|||||||
        "node": ">=6.0.0"
 | 
					        "node": ">=6.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/dunder-proto": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "call-bind-apply-helpers": "^1.0.1",
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "gopd": "^1.2.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/ejs": {
 | 
					    "node_modules/ejs": {
 | 
				
			||||||
      "version": "3.1.10",
 | 
					      "version": "3.1.10",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
 | 
				
			||||||
@ -2533,6 +2571,51 @@
 | 
				
			|||||||
        "is-arrayish": "^0.2.1"
 | 
					        "is-arrayish": "^0.2.1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-define-property": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-errors": {
 | 
				
			||||||
 | 
					      "version": "1.3.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-object-atoms": {
 | 
				
			||||||
 | 
					      "version": "1.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-set-tostringtag": {
 | 
				
			||||||
 | 
					      "version": "2.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "get-intrinsic": "^1.2.6",
 | 
				
			||||||
 | 
					        "has-tostringtag": "^1.0.2",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/escalade": {
 | 
					    "node_modules/escalade": {
 | 
				
			||||||
      "version": "3.1.1",
 | 
					      "version": "3.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
 | 
				
			||||||
@ -3009,9 +3092,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/filelist/node_modules/brace-expansion": {
 | 
					    "node_modules/filelist/node_modules/brace-expansion": {
 | 
				
			||||||
      "version": "2.0.1",
 | 
					      "version": "2.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
 | 
					      "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
@ -3080,13 +3163,17 @@
 | 
				
			|||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/form-data": {
 | 
					    "node_modules/form-data": {
 | 
				
			||||||
      "version": "2.5.1",
 | 
					      "version": "2.5.5",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz",
 | 
				
			||||||
      "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
 | 
					      "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "asynckit": "^0.4.0",
 | 
					        "asynckit": "^0.4.0",
 | 
				
			||||||
        "combined-stream": "^1.0.6",
 | 
					        "combined-stream": "^1.0.8",
 | 
				
			||||||
        "mime-types": "^2.1.12"
 | 
					        "es-set-tostringtag": "^2.1.0",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2",
 | 
				
			||||||
 | 
					        "mime-types": "^2.1.35",
 | 
				
			||||||
 | 
					        "safe-buffer": "^5.2.1"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": ">= 0.12"
 | 
					        "node": ">= 0.12"
 | 
				
			||||||
@ -3116,7 +3203,6 @@
 | 
				
			|||||||
      "version": "1.1.2",
 | 
					      "version": "1.1.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
 | 
					      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "funding": {
 | 
					      "funding": {
 | 
				
			||||||
        "url": "https://github.com/sponsors/ljharb"
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -3139,6 +3225,30 @@
 | 
				
			|||||||
        "node": "6.* || 8.* || >= 10.*"
 | 
					        "node": "6.* || 8.* || >= 10.*"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/get-intrinsic": {
 | 
				
			||||||
 | 
					      "version": "1.3.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "call-bind-apply-helpers": "^1.0.2",
 | 
				
			||||||
 | 
					        "es-define-property": "^1.0.1",
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "es-object-atoms": "^1.1.1",
 | 
				
			||||||
 | 
					        "function-bind": "^1.1.2",
 | 
				
			||||||
 | 
					        "get-proto": "^1.0.1",
 | 
				
			||||||
 | 
					        "gopd": "^1.2.0",
 | 
				
			||||||
 | 
					        "has-symbols": "^1.1.0",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2",
 | 
				
			||||||
 | 
					        "math-intrinsics": "^1.1.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/get-package-type": {
 | 
					    "node_modules/get-package-type": {
 | 
				
			||||||
      "version": "0.1.0",
 | 
					      "version": "0.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
 | 
				
			||||||
@ -3148,6 +3258,19 @@
 | 
				
			|||||||
        "node": ">=8.0.0"
 | 
					        "node": ">=8.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/get-proto": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "dunder-proto": "^1.0.1",
 | 
				
			||||||
 | 
					        "es-object-atoms": "^1.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/get-stream": {
 | 
					    "node_modules/get-stream": {
 | 
				
			||||||
      "version": "6.0.1",
 | 
					      "version": "6.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
 | 
				
			||||||
@ -3227,6 +3350,18 @@
 | 
				
			|||||||
        "url": "https://github.com/sponsors/sindresorhus"
 | 
					        "url": "https://github.com/sponsors/sindresorhus"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/gopd": {
 | 
				
			||||||
 | 
					      "version": "1.2.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/graceful-fs": {
 | 
					    "node_modules/graceful-fs": {
 | 
				
			||||||
      "version": "4.2.11",
 | 
					      "version": "4.2.11",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
 | 
				
			||||||
@ -3248,11 +3383,38 @@
 | 
				
			|||||||
        "node": ">=8"
 | 
					        "node": ">=8"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/has-symbols": {
 | 
				
			||||||
 | 
					      "version": "1.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/has-tostringtag": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "has-symbols": "^1.0.3"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/hasown": {
 | 
					    "node_modules/hasown": {
 | 
				
			||||||
      "version": "2.0.0",
 | 
					      "version": "2.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
 | 
					      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
 | 
				
			||||||
      "dev": true,
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "function-bind": "^1.1.2"
 | 
					        "function-bind": "^1.1.2"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@ -4255,6 +4417,15 @@
 | 
				
			|||||||
        "tmpl": "1.0.5"
 | 
					        "tmpl": "1.0.5"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/math-intrinsics": {
 | 
				
			||||||
 | 
					      "version": "1.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/merge-stream": {
 | 
					    "node_modules/merge-stream": {
 | 
				
			||||||
      "version": "2.0.0",
 | 
					      "version": "2.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
 | 
				
			||||||
@ -4883,6 +5054,26 @@
 | 
				
			|||||||
        "queue-microtask": "^1.2.2"
 | 
					        "queue-microtask": "^1.2.2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/safe-buffer": {
 | 
				
			||||||
 | 
					      "version": "5.2.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
 | 
				
			||||||
 | 
					      "funding": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "type": "github",
 | 
				
			||||||
 | 
					          "url": "https://github.com/sponsors/feross"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "type": "patreon",
 | 
				
			||||||
 | 
					          "url": "https://www.patreon.com/feross"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "type": "consulting",
 | 
				
			||||||
 | 
					          "url": "https://feross.org/support"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "license": "MIT"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/sax": {
 | 
					    "node_modules/sax": {
 | 
				
			||||||
      "version": "1.3.0",
 | 
					      "version": "1.3.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
 | 
				
			||||||
@ -5268,9 +5459,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/undici": {
 | 
					    "node_modules/undici": {
 | 
				
			||||||
      "version": "5.28.5",
 | 
					      "version": "5.29.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.5.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==",
 | 
					      "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@fastify/busboy": "^2.0.0"
 | 
					        "@fastify/busboy": "^2.0.0"
 | 
				
			||||||
@ -5280,9 +5471,10 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/undici-types": {
 | 
					    "node_modules/undici-types": {
 | 
				
			||||||
      "version": "5.26.5",
 | 
					      "version": "7.8.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
 | 
					      "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==",
 | 
				
			||||||
 | 
					      "license": "MIT"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/update-browserslist-db": {
 | 
					    "node_modules/update-browserslist-db": {
 | 
				
			||||||
      "version": "1.0.13",
 | 
					      "version": "1.0.13",
 | 
				
			||||||
 | 
				
			|||||||
@ -1,9 +1,12 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "setup-python",
 | 
					  "name": "setup-python",
 | 
				
			||||||
  "version": "5.0.0",
 | 
					  "version": "6.0.0",
 | 
				
			||||||
  "private": true,
 | 
					  "private": true,
 | 
				
			||||||
  "description": "Setup python action",
 | 
					  "description": "Setup python action",
 | 
				
			||||||
  "main": "dist/index.js",
 | 
					  "main": "dist/index.js",
 | 
				
			||||||
 | 
					  "engines": {
 | 
				
			||||||
 | 
					    "node": ">=24.0.0"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "build": "ncc build -o dist/setup src/setup-python.ts && ncc build -o dist/cache-save src/cache-save.ts",
 | 
					    "build": "ncc build -o dist/setup src/setup-python.ts && ncc build -o dist/cache-save src/cache-save.ts",
 | 
				
			||||||
    "format": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --write \"**/*.{ts,yml,yaml}\"",
 | 
					    "format": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --write \"**/*.{ts,yml,yaml}\"",
 | 
				
			||||||
@ -37,7 +40,7 @@
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "@types/jest": "^29.5.12",
 | 
					    "@types/jest": "^29.5.12",
 | 
				
			||||||
    "@types/node": "^20.11.25",
 | 
					    "@types/node": "^24.1.0",
 | 
				
			||||||
    "@types/semver": "^7.7.0",
 | 
					    "@types/semver": "^7.7.0",
 | 
				
			||||||
    "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
					    "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
				
			||||||
    "@typescript-eslint/parser": "^5.54.0",
 | 
					    "@typescript-eslint/parser": "^5.54.0",
 | 
				
			||||||
 | 
				
			|||||||
@ -38,11 +38,12 @@ async function saveCache(packageManager: string) {
 | 
				
			|||||||
  core.debug(`paths for caching are ${cachePaths.join(', ')}`);
 | 
					  core.debug(`paths for caching are ${cachePaths.join(', ')}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (!isCacheDirectoryExists(cachePaths)) {
 | 
					  if (!isCacheDirectoryExists(cachePaths)) {
 | 
				
			||||||
    throw new Error(
 | 
					    core.warning(
 | 
				
			||||||
      `Cache folder path is retrieved for ${packageManager} but doesn't exist on disk: ${cachePaths.join(
 | 
					      `Cache folder path is retrieved for ${packageManager} but doesn't exist on disk: ${cachePaths.join(
 | 
				
			||||||
        ', '
 | 
					        ', '
 | 
				
			||||||
      )}. This likely indicates that there are no dependencies to cache. Consider removing the cache step if it is not needed.`
 | 
					      )}. This likely indicates that there are no dependencies to cache. Consider removing the cache step if it is not needed.`
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const primaryKey = core.getState(State.STATE_CACHE_PRIMARY_KEY);
 | 
					  const primaryKey = core.getState(State.STATE_CACHE_PRIMARY_KEY);
 | 
				
			||||||
 | 
				
			|||||||
@ -22,62 +22,13 @@ function isGraalPyVersion(versionSpec: string) {
 | 
				
			|||||||
  return versionSpec.startsWith('graalpy');
 | 
					  return versionSpec.startsWith('graalpy');
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export async function cacheDependencies(cache: string, pythonVersion: string) {
 | 
					async function cacheDependencies(cache: string, pythonVersion: string) {
 | 
				
			||||||
  const cacheDependencyPath =
 | 
					  const cacheDependencyPath =
 | 
				
			||||||
    core.getInput('cache-dependency-path') || undefined;
 | 
					    core.getInput('cache-dependency-path') || undefined;
 | 
				
			||||||
  let resolvedDependencyPath: string | undefined = undefined;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (cacheDependencyPath) {
 | 
					 | 
				
			||||||
    const actionPath = process.env.GITHUB_ACTION_PATH || '';
 | 
					 | 
				
			||||||
    const workspace = process.env.GITHUB_WORKSPACE || process.cwd();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const sourcePath = path.resolve(actionPath, cacheDependencyPath);
 | 
					 | 
				
			||||||
    const relativePath = path.relative(actionPath, sourcePath);
 | 
					 | 
				
			||||||
    const targetPath = path.resolve(workspace, relativePath);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    try {
 | 
					 | 
				
			||||||
      const sourceExists = await fs.promises
 | 
					 | 
				
			||||||
        .access(sourcePath, fs.constants.F_OK)
 | 
					 | 
				
			||||||
        .then(() => true)
 | 
					 | 
				
			||||||
        .catch(() => false);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (!sourceExists) {
 | 
					 | 
				
			||||||
        core.warning(
 | 
					 | 
				
			||||||
          `The resolved cache-dependency-path does not exist: ${sourcePath}`
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
      } else {
 | 
					 | 
				
			||||||
        if (sourcePath !== targetPath) {
 | 
					 | 
				
			||||||
          const targetDir = path.dirname(targetPath);
 | 
					 | 
				
			||||||
          // Create target directory if it doesn't exist
 | 
					 | 
				
			||||||
          await fs.promises.mkdir(targetDir, {recursive: true});
 | 
					 | 
				
			||||||
          // Copy file asynchronously
 | 
					 | 
				
			||||||
          await fs.promises.copyFile(sourcePath, targetPath);
 | 
					 | 
				
			||||||
          core.info(`Copied ${sourcePath} to ${targetPath}`);
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
          core.info(
 | 
					 | 
				
			||||||
            `Dependency file is already inside the workspace: ${sourcePath}`
 | 
					 | 
				
			||||||
          );
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        resolvedDependencyPath = path
 | 
					 | 
				
			||||||
          .relative(workspace, targetPath)
 | 
					 | 
				
			||||||
          .replace(/\\/g, '/');
 | 
					 | 
				
			||||||
        core.info(`Resolved cache-dependency-path: ${resolvedDependencyPath}`);
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    } catch (error) {
 | 
					 | 
				
			||||||
      core.warning(
 | 
					 | 
				
			||||||
        `Failed to copy file from ${sourcePath} to ${targetPath}: ${error}`
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Pass resolvedDependencyPath if available, else fallback to original input
 | 
					 | 
				
			||||||
  const dependencyPathForCache = resolvedDependencyPath ?? cacheDependencyPath;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  const cacheDistributor = getCacheDistributor(
 | 
					  const cacheDistributor = getCacheDistributor(
 | 
				
			||||||
    cache,
 | 
					    cache,
 | 
				
			||||||
    pythonVersion,
 | 
					    pythonVersion,
 | 
				
			||||||
    dependencyPathForCache
 | 
					    cacheDependencyPath
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
  await cacheDistributor.restoreCache();
 | 
					  await cacheDistributor.restoreCache();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										42
									
								
								src/utils.ts
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								src/utils.ts
									
									
									
									
									
								
							@ -325,14 +325,54 @@ export function getVersionInputFromToolVersions(versionFile: string): string[] {
 | 
				
			|||||||
    return [];
 | 
					    return [];
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Python version extracted from a plain, .tool-versions or TOML file.
 | 
					 * Python version extracted from the Pipfile file.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export function getVersionInputFromPipfileFile(versionFile: string): string[] {
 | 
				
			||||||
 | 
					  core.debug(`Trying to resolve version from ${versionFile}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (!fs.existsSync(versionFile)) {
 | 
				
			||||||
 | 
					    core.warning(`File ${versionFile} does not exist.`);
 | 
				
			||||||
 | 
					    return [];
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  let pipfileFile = fs.readFileSync(versionFile, 'utf8');
 | 
				
			||||||
 | 
					  // Normalize the line endings in the pipfileFile
 | 
				
			||||||
 | 
					  pipfileFile = pipfileFile.replace(/\r\n/g, '\n');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const pipfileConfig = toml.parse(pipfileFile);
 | 
				
			||||||
 | 
					  const keys = ['requires'];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (!('requires' in pipfileConfig)) {
 | 
				
			||||||
 | 
					    core.warning(`No Python version found in ${versionFile}`);
 | 
				
			||||||
 | 
					    return [];
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if ('python_full_version' in (pipfileConfig['requires'] as toml.JsonMap)) {
 | 
				
			||||||
 | 
					    // specifies a full python version
 | 
				
			||||||
 | 
					    keys.push('python_full_version');
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    keys.push('python_version');
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  const versions = [];
 | 
				
			||||||
 | 
					  const version = extractValue(pipfileConfig, keys);
 | 
				
			||||||
 | 
					  if (version !== undefined) {
 | 
				
			||||||
 | 
					    versions.push(version);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  core.info(`Extracted ${versions} from ${versionFile}`);
 | 
				
			||||||
 | 
					  return versions;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Python version extracted from a plain, .tool-versions, Pipfile or TOML file.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export function getVersionInputFromFile(versionFile: string): string[] {
 | 
					export function getVersionInputFromFile(versionFile: string): string[] {
 | 
				
			||||||
  if (versionFile.endsWith('.toml')) {
 | 
					  if (versionFile.endsWith('.toml')) {
 | 
				
			||||||
    return getVersionInputFromTomlFile(versionFile);
 | 
					    return getVersionInputFromTomlFile(versionFile);
 | 
				
			||||||
  } else if (versionFile.match('.tool-versions')) {
 | 
					  } else if (versionFile.match('.tool-versions')) {
 | 
				
			||||||
    return getVersionInputFromToolVersions(versionFile);
 | 
					    return getVersionInputFromToolVersions(versionFile);
 | 
				
			||||||
 | 
					  } else if (versionFile.match('Pipfile')) {
 | 
				
			||||||
 | 
					    return getVersionInputFromPipfileFile(versionFile);
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    return getVersionsInputFromPlainFile(versionFile);
 | 
					    return getVersionsInputFromPlainFile(versionFile);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user