cloudx-proxy 0.17.7__tar.gz → 0.18.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.ai/context/development.md +4 -1
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.ai/context/project-overview.md +2 -2
- cloudx_proxy-0.18.1/.github/dependabot.yml +31 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.github/workflows/claude.yml +1 -1
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.github/workflows/codeql.yml +2 -2
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.github/workflows/test.yml +0 -1
- cloudx_proxy-0.18.1/.releaserc +51 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/CHANGELOG.md +14 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/CLAUDE.md +4 -1
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/CONTRIBUTING.md +9 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/PKG-INFO +6 -7
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/README.md +4 -4
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy/_version.py +2 -2
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy.egg-info/PKG-INFO +6 -7
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy.egg-info/SOURCES.txt +1 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy.egg-info/scm_file_list.json +1 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/pyproject.toml +3 -4
- cloudx_proxy-0.18.1/tests/conftest.py +17 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/uv.lock +41 -105
- cloudx_proxy-0.17.7/.github/dependabot.yml +0 -12
- cloudx_proxy-0.17.7/.releaserc +0 -38
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.ai/README.md +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.ai/context/README.md +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.ai/context/architecture.md +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.ai/context/commit-conventions.md +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.ai/context/ssh-config.md +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.ai/roadmap/architecture-review.md +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.ai/roadmap/documentation-findings.md +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.ai/roadmap/improvement-roadmap.md +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.clinerules +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.envrc +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.github/workflows/release.yml +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/.gitignore +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/LICENSE +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/NOTICE +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy/__init__.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy/_op.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy/cli.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy/colors.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy/core.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy/setup.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy.egg-info/dependency_links.txt +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy.egg-info/entry_points.txt +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy.egg-info/requires.txt +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/cloudx_proxy.egg-info/top_level.txt +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/setup.cfg +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/tests/__init__.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/tests/test_backward_compat.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/tests/test_cli_options.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/tests/test_config_safety.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/tests/test_core.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/tests/test_instance_tags.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/tests/test_non_interactive.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/tests/test_runtime_safety.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/tests/test_setup.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/tests/test_ssh_config.py +0 -0
- {cloudx_proxy-0.17.7 → cloudx_proxy-0.18.1}/tests/test_version.py +0 -0
|
@@ -101,8 +101,11 @@ The project uses semantic-release with GitHub Actions:
|
|
|
101
101
|
- **Artifacts**: GitHub releases, PyPI packages, CHANGELOG.md updates.
|
|
102
102
|
|
|
103
103
|
**Commit Message Format:**
|
|
104
|
+
- `type!:` or a `BREAKING CHANGE:` footer on any type → major version (note: from 0.x this becomes 1.0.0)
|
|
104
105
|
- `feat:` → minor version
|
|
105
|
-
- `fix:`, `
|
|
106
|
+
- `fix:`, `perf:`, `refactor:` → patch version
|
|
107
|
+
- `docs:`, `style:`, `test:`, `build:`, `ci:`, `chore:` → no release; they ride along in the next release's changelog
|
|
108
|
+
- Dependabot: runtime dependency updates are `fix(deps)` (release), dev-only dependency updates and GitHub Actions updates are `chore(deps-dev)` / `ci(deps)` (no release)
|
|
106
109
|
|
|
107
110
|
## Console Output
|
|
108
111
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
## Prerequisites
|
|
15
15
|
|
|
16
|
-
1. **Python 3.
|
|
16
|
+
1. **Python 3.11+**: Required for cloudX-proxy and uv package manager.
|
|
17
17
|
2. **AWS CLI v2**: For configuring AWS profiles and credentials.
|
|
18
18
|
3. **AWS Session Manager Plugin**: Enables secure tunneling through AWS Systems Manager.
|
|
19
19
|
4. **OpenSSH Client**: Handles SSH key management and connections.
|
|
@@ -97,7 +97,7 @@ After setup, configure VSCode settings (`settings.json`):
|
|
|
97
97
|
## Troubleshooting
|
|
98
98
|
|
|
99
99
|
### Common Issues
|
|
100
|
-
- **Python/Installation**: Ensure Python 3.
|
|
100
|
+
- **Python/Installation**: Ensure Python 3.11+ and `uv` are installed.
|
|
101
101
|
- **Setup**: Verify AWS profile format (`cloudX-{env}-{user}`) and permissions.
|
|
102
102
|
- **Connection**: Check VSCode SSH config path, instance status, and timeouts.
|
|
103
103
|
- **SSH Keys**: Verify permissions (600 for private key) and 1Password agent status.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
|
|
4
|
+
# Workflow action bumps never change what ships to PyPI, so they must not
|
|
5
|
+
# trigger a release (ci -> no release in .releaserc).
|
|
6
|
+
- package-ecosystem: "github-actions"
|
|
7
|
+
directory: "/"
|
|
8
|
+
schedule:
|
|
9
|
+
interval: "daily"
|
|
10
|
+
commit-message:
|
|
11
|
+
prefix: "ci"
|
|
12
|
+
include: "scope"
|
|
13
|
+
|
|
14
|
+
# Runtime dependency bumps (and security fixes) change what users install,
|
|
15
|
+
# so they release as a patch. Dev-only groups (pytest, ruff, pip-audit, ...)
|
|
16
|
+
# do not. The project is locked with uv.lock, hence the uv ecosystem.
|
|
17
|
+
- package-ecosystem: "uv"
|
|
18
|
+
directory: "/"
|
|
19
|
+
schedule:
|
|
20
|
+
interval: "daily"
|
|
21
|
+
commit-message:
|
|
22
|
+
prefix: "fix"
|
|
23
|
+
prefix-development: "chore"
|
|
24
|
+
include: "scope"
|
|
25
|
+
# One PR per group instead of one per package: every bump rewrites uv.lock,
|
|
26
|
+
# so separate PRs conflict with each other and each needs a rebase + CI run.
|
|
27
|
+
groups:
|
|
28
|
+
runtime:
|
|
29
|
+
dependency-type: "production"
|
|
30
|
+
dev:
|
|
31
|
+
dependency-type: "development"
|
|
@@ -31,12 +31,12 @@ jobs:
|
|
|
31
31
|
uses: actions/checkout@v7
|
|
32
32
|
|
|
33
33
|
- name: Initialize CodeQL
|
|
34
|
-
uses: github/codeql-action/init@v4.
|
|
34
|
+
uses: github/codeql-action/init@v4.39.1
|
|
35
35
|
with:
|
|
36
36
|
languages: ${{ matrix.language }}
|
|
37
37
|
queries: security-and-quality
|
|
38
38
|
|
|
39
39
|
- name: Perform CodeQL Analysis
|
|
40
|
-
uses: github/codeql-action/analyze@v4.
|
|
40
|
+
uses: github/codeql-action/analyze@v4.39.1
|
|
41
41
|
with:
|
|
42
42
|
category: "/language:${{ matrix.language }}"
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"branches": ["main"],
|
|
3
|
+
"tagFormat": "v${version}",
|
|
4
|
+
"repositoryUrl": "https://github.com/easytocloud/cloudX-proxy.git",
|
|
5
|
+
"plugins": [
|
|
6
|
+
["@semantic-release/commit-analyzer", {
|
|
7
|
+
"preset": "angular",
|
|
8
|
+
"parserOpts": {
|
|
9
|
+
"headerPattern": "^(\\w*)(?:\\((.*)\\))?!?: (.*)$",
|
|
10
|
+
"headerCorrespondence": ["type", "scope", "subject"],
|
|
11
|
+
"breakingHeaderPattern": "^(\\w*)(?:\\((.*)\\))?!: (.*)$"
|
|
12
|
+
},
|
|
13
|
+
"releaseRules": [
|
|
14
|
+
{"breaking": true, "release": "major"},
|
|
15
|
+
{"type": "feat", "release": "minor"},
|
|
16
|
+
{"type": "fix", "release": "patch"},
|
|
17
|
+
{"type": "perf", "release": "patch"},
|
|
18
|
+
{"type": "refactor", "release": "patch"},
|
|
19
|
+
{"type": "docs", "release": false},
|
|
20
|
+
{"type": "style", "release": false},
|
|
21
|
+
{"type": "test", "release": false},
|
|
22
|
+
{"type": "build", "release": false},
|
|
23
|
+
{"type": "ci", "release": false},
|
|
24
|
+
{"type": "chore", "release": false}
|
|
25
|
+
]
|
|
26
|
+
}],
|
|
27
|
+
["@semantic-release/release-notes-generator", {
|
|
28
|
+
"preset": "angular",
|
|
29
|
+
"parserOpts": {
|
|
30
|
+
"headerPattern": "^(\\w*)(?:\\((.*)\\))?!?: (.*)$",
|
|
31
|
+
"headerCorrespondence": ["type", "scope", "subject"],
|
|
32
|
+
"breakingHeaderPattern": "^(\\w*)(?:\\((.*)\\))?!: (.*)$"
|
|
33
|
+
}
|
|
34
|
+
}],
|
|
35
|
+
[
|
|
36
|
+
"@semantic-release/changelog",
|
|
37
|
+
{
|
|
38
|
+
"changelogFile": "CHANGELOG.md"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
[
|
|
42
|
+
"@semantic-release/git",
|
|
43
|
+
{
|
|
44
|
+
"assets": [
|
|
45
|
+
"CHANGELOG.md"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"@semantic-release/github"
|
|
50
|
+
]
|
|
51
|
+
}
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [0.18.1](https://github.com/easytocloud/cloudX-proxy/compare/v0.18.0...v0.18.1) (2026-11-04)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **deps:** bump boto3, click, ruff, pytest, pip-audit; group Dependabot PRs ([7ebc458](https://github.com/easytocloud/cloudX-proxy/commit/7ebc458fe571dbe233b370a7c9808da745da0133)), closes [82-#86](https://github.com/82-/issues/86)
|
|
7
|
+
|
|
8
|
+
# [0.18.0](https://github.com/easytocloud/cloudX-proxy/compare/v0.17.7...v0.18.0) (2026-11-04)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* require Python 3.11+ (3.10 is end of life) ([9577577](https://github.com/easytocloud/cloudX-proxy/commit/9577577bc6c3996d6e7c4e8859fc12642f71f8ee))
|
|
14
|
+
|
|
1
15
|
## [0.17.7](https://github.com/easytocloud/cloudX-proxy/compare/v0.17.6...v0.17.7) (2026-10-28)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -74,5 +74,8 @@ The project uses semantic-release with GitHub Actions:
|
|
|
74
74
|
- **Artifacts**: GitHub releases, PyPI packages, CHANGELOG.md updates
|
|
75
75
|
|
|
76
76
|
Commit message format affects version bumps:
|
|
77
|
+
- `type!:` or a `BREAKING CHANGE:` footer on any type → major version (note: from 0.x this becomes 1.0.0)
|
|
77
78
|
- `feat:` → minor version
|
|
78
|
-
- `fix:`, `
|
|
79
|
+
- `fix:`, `perf:`, `refactor:` → patch version
|
|
80
|
+
- `docs:`, `style:`, `test:`, `build:`, `ci:`, `chore:` → no release; they ride along in the next release's changelog
|
|
81
|
+
- Dependabot: runtime dependency updates are `fix(deps)` (release), dev-only dependency updates and GitHub Actions updates are `chore(deps-dev)` / `ci(deps)` (no release)
|
|
@@ -49,6 +49,15 @@ The package is automatically published to PyPI via GitHub Actions when a new rel
|
|
|
49
49
|
The project uses semantic-release for versioning.
|
|
50
50
|
Version numbers are automatically determined based on commit messages following the conventional commits specification.
|
|
51
51
|
|
|
52
|
+
A breaking change (`feat!: ...`, or a `BREAKING CHANGE:` footer on any commit
|
|
53
|
+
type) publishes a major release; from 0.x that means 1.0.0. Otherwise only `feat`
|
|
54
|
+
(minor) and `fix`, `perf`, `refactor` (patch) publish a release.
|
|
55
|
+
`docs`, `style`, `test`, `build`, `ci` and `chore` commits never do on their own;
|
|
56
|
+
they are included in the changelog of the next release. To ship accumulated
|
|
57
|
+
chore-type changes, land a `fix:` commit. Dependabot runtime dependency updates
|
|
58
|
+
are labelled `fix(deps)` so security fixes release; dev-only and GitHub Actions
|
|
59
|
+
updates are `chore`/`ci` and do not.
|
|
60
|
+
|
|
52
61
|
The GitHub Actions workflow will:
|
|
53
62
|
|
|
54
63
|
1. Determine next version based on commits
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cloudx-proxy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.18.1
|
|
4
4
|
Summary: SSH proxy command to connect VSCode with cloudX instance using AWS Systems Manager
|
|
5
5
|
Author-email: easytocloud <info@easytocloud.com>
|
|
6
6
|
License: MIT License
|
|
@@ -36,13 +36,12 @@ Classifier: Intended Audience :: Developers
|
|
|
36
36
|
Classifier: License :: OSI Approved :: MIT License
|
|
37
37
|
Classifier: Operating System :: OS Independent
|
|
38
38
|
Classifier: Programming Language :: Python :: 3
|
|
39
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
40
39
|
Classifier: Programming Language :: Python :: 3.11
|
|
41
40
|
Classifier: Programming Language :: Python :: 3.12
|
|
42
41
|
Classifier: Programming Language :: Python :: 3.13
|
|
43
42
|
Classifier: Topic :: Software Development :: Build Tools
|
|
44
43
|
Classifier: Topic :: System :: Systems Administration
|
|
45
|
-
Requires-Python: >=3.
|
|
44
|
+
Requires-Python: >=3.11
|
|
46
45
|
Description-Content-Type: text/markdown
|
|
47
46
|
License-File: LICENSE
|
|
48
47
|
License-File: NOTICE
|
|
@@ -80,7 +79,7 @@ Using AWS Systems Manager Session Manager, it eliminates the need for direct SSH
|
|
|
80
79
|
|
|
81
80
|
1. **Install Prerequisites:**
|
|
82
81
|
```bash
|
|
83
|
-
# Install Python 3.
|
|
82
|
+
# Install Python 3.11+, AWS CLI v2, Session Manager plugin
|
|
84
83
|
pip install uv
|
|
85
84
|
```
|
|
86
85
|
|
|
@@ -120,10 +119,10 @@ All documentation and examples use this convention. If you see different casing
|
|
|
120
119
|
|
|
121
120
|
## Prerequisites
|
|
122
121
|
|
|
123
|
-
1. **Python 3.
|
|
122
|
+
1. **Python 3.11+** - Required for cloudX-proxy and uv package manager
|
|
124
123
|
- [Python Installation Guide](https://www.python.org/downloads/)
|
|
125
124
|
- Check your version: `python --version` or `python3 --version`
|
|
126
|
-
- Supports Python 3.
|
|
125
|
+
- Supports Python 3.11, 3.12, 3.13
|
|
127
126
|
|
|
128
127
|
2. **AWS CLI v2** - Used to configure AWS profiles and credentials
|
|
129
128
|
- [Installation Guide](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
|
|
@@ -720,7 +719,7 @@ These permissions are required to bootstrap the instance, so that after creation
|
|
|
720
719
|
### Common Issues
|
|
721
720
|
|
|
722
721
|
1. **Python/Installation Issues**
|
|
723
|
-
- **Error: "python not found"** - Ensure Python 3.
|
|
722
|
+
- **Error: "python not found"** - Ensure Python 3.11+ is installed and in PATH
|
|
724
723
|
- **Error: "uvx command not found"** - Install uv: `pip install uv`
|
|
725
724
|
- **Error: "Package not found"** - Try updating uv: `pip install --upgrade uv`
|
|
726
725
|
- **ImportError/ModuleNotFoundError** - Check Python version compatibility (`python --version`)
|
|
@@ -28,7 +28,7 @@ Using AWS Systems Manager Session Manager, it eliminates the need for direct SSH
|
|
|
28
28
|
|
|
29
29
|
1. **Install Prerequisites:**
|
|
30
30
|
```bash
|
|
31
|
-
# Install Python 3.
|
|
31
|
+
# Install Python 3.11+, AWS CLI v2, Session Manager plugin
|
|
32
32
|
pip install uv
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -68,10 +68,10 @@ All documentation and examples use this convention. If you see different casing
|
|
|
68
68
|
|
|
69
69
|
## Prerequisites
|
|
70
70
|
|
|
71
|
-
1. **Python 3.
|
|
71
|
+
1. **Python 3.11+** - Required for cloudX-proxy and uv package manager
|
|
72
72
|
- [Python Installation Guide](https://www.python.org/downloads/)
|
|
73
73
|
- Check your version: `python --version` or `python3 --version`
|
|
74
|
-
- Supports Python 3.
|
|
74
|
+
- Supports Python 3.11, 3.12, 3.13
|
|
75
75
|
|
|
76
76
|
2. **AWS CLI v2** - Used to configure AWS profiles and credentials
|
|
77
77
|
- [Installation Guide](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
|
|
@@ -668,7 +668,7 @@ These permissions are required to bootstrap the instance, so that after creation
|
|
|
668
668
|
### Common Issues
|
|
669
669
|
|
|
670
670
|
1. **Python/Installation Issues**
|
|
671
|
-
- **Error: "python not found"** - Ensure Python 3.
|
|
671
|
+
- **Error: "python not found"** - Ensure Python 3.11+ is installed and in PATH
|
|
672
672
|
- **Error: "uvx command not found"** - Install uv: `pip install uv`
|
|
673
673
|
- **Error: "Package not found"** - Try updating uv: `pip install --upgrade uv`
|
|
674
674
|
- **ImportError/ModuleNotFoundError** - Check Python version compatibility (`python --version`)
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.
|
|
22
|
-
__version_tuple__ = version_tuple = (0,
|
|
21
|
+
__version__ = version = '0.18.1'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 18, 1)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cloudx-proxy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.18.1
|
|
4
4
|
Summary: SSH proxy command to connect VSCode with cloudX instance using AWS Systems Manager
|
|
5
5
|
Author-email: easytocloud <info@easytocloud.com>
|
|
6
6
|
License: MIT License
|
|
@@ -36,13 +36,12 @@ Classifier: Intended Audience :: Developers
|
|
|
36
36
|
Classifier: License :: OSI Approved :: MIT License
|
|
37
37
|
Classifier: Operating System :: OS Independent
|
|
38
38
|
Classifier: Programming Language :: Python :: 3
|
|
39
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
40
39
|
Classifier: Programming Language :: Python :: 3.11
|
|
41
40
|
Classifier: Programming Language :: Python :: 3.12
|
|
42
41
|
Classifier: Programming Language :: Python :: 3.13
|
|
43
42
|
Classifier: Topic :: Software Development :: Build Tools
|
|
44
43
|
Classifier: Topic :: System :: Systems Administration
|
|
45
|
-
Requires-Python: >=3.
|
|
44
|
+
Requires-Python: >=3.11
|
|
46
45
|
Description-Content-Type: text/markdown
|
|
47
46
|
License-File: LICENSE
|
|
48
47
|
License-File: NOTICE
|
|
@@ -80,7 +79,7 @@ Using AWS Systems Manager Session Manager, it eliminates the need for direct SSH
|
|
|
80
79
|
|
|
81
80
|
1. **Install Prerequisites:**
|
|
82
81
|
```bash
|
|
83
|
-
# Install Python 3.
|
|
82
|
+
# Install Python 3.11+, AWS CLI v2, Session Manager plugin
|
|
84
83
|
pip install uv
|
|
85
84
|
```
|
|
86
85
|
|
|
@@ -120,10 +119,10 @@ All documentation and examples use this convention. If you see different casing
|
|
|
120
119
|
|
|
121
120
|
## Prerequisites
|
|
122
121
|
|
|
123
|
-
1. **Python 3.
|
|
122
|
+
1. **Python 3.11+** - Required for cloudX-proxy and uv package manager
|
|
124
123
|
- [Python Installation Guide](https://www.python.org/downloads/)
|
|
125
124
|
- Check your version: `python --version` or `python3 --version`
|
|
126
|
-
- Supports Python 3.
|
|
125
|
+
- Supports Python 3.11, 3.12, 3.13
|
|
127
126
|
|
|
128
127
|
2. **AWS CLI v2** - Used to configure AWS profiles and credentials
|
|
129
128
|
- [Installation Guide](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
|
|
@@ -720,7 +719,7 @@ These permissions are required to bootstrap the instance, so that after creation
|
|
|
720
719
|
### Common Issues
|
|
721
720
|
|
|
722
721
|
1. **Python/Installation Issues**
|
|
723
|
-
- **Error: "python not found"** - Ensure Python 3.
|
|
722
|
+
- **Error: "python not found"** - Ensure Python 3.11+ is installed and in PATH
|
|
724
723
|
- **Error: "uvx command not found"** - Install uv: `pip install uv`
|
|
725
724
|
- **Error: "Package not found"** - Try updating uv: `pip install --upgrade uv`
|
|
726
725
|
- **ImportError/ModuleNotFoundError** - Check Python version compatibility (`python --version`)
|
|
@@ -9,7 +9,7 @@ dependencies = [
|
|
|
9
9
|
"boto3>=1.34.0",
|
|
10
10
|
"click>=8.1.0", # For better CLI argument handling than argparse
|
|
11
11
|
]
|
|
12
|
-
requires-python = ">=3.
|
|
12
|
+
requires-python = ">=3.11"
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
license = {file = "LICENSE"}
|
|
15
15
|
keywords = ["aws", "vscode", "cloud9", "cloudX", "ssm", "ssh", "proxy"]
|
|
@@ -20,7 +20,6 @@ classifiers = [
|
|
|
20
20
|
"License :: OSI Approved :: MIT License",
|
|
21
21
|
"Operating System :: OS Independent",
|
|
22
22
|
"Programming Language :: Python :: 3",
|
|
23
|
-
"Programming Language :: Python :: 3.10",
|
|
24
23
|
"Programming Language :: Python :: 3.11",
|
|
25
24
|
"Programming Language :: Python :: 3.12",
|
|
26
25
|
"Programming Language :: Python :: 3.13",
|
|
@@ -56,7 +55,7 @@ dev = [
|
|
|
56
55
|
]
|
|
57
56
|
|
|
58
57
|
[tool.ruff]
|
|
59
|
-
target-version = "
|
|
58
|
+
target-version = "py311"
|
|
60
59
|
line-length = 120
|
|
61
60
|
|
|
62
61
|
[tool.ruff.lint]
|
|
@@ -64,7 +63,7 @@ select = [
|
|
|
64
63
|
"E", # pycodestyle errors
|
|
65
64
|
"F", # pyflakes
|
|
66
65
|
"I", # import sorting
|
|
67
|
-
"UP", # pyupgrade (target is Python 3.
|
|
66
|
+
"UP", # pyupgrade (target is Python 3.11+)
|
|
68
67
|
"B", # bugbear
|
|
69
68
|
"SIM", # simplifications
|
|
70
69
|
"RUF", # ruff-specific
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""Shared pytest configuration."""
|
|
2
|
+
|
|
3
|
+
import pytest
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@pytest.fixture(autouse=True)
|
|
7
|
+
def _isolated_home(tmp_path_factory, monkeypatch):
|
|
8
|
+
"""Point the home directory at a throwaway one for every test.
|
|
9
|
+
|
|
10
|
+
CloudXSetup resolves ~/.ssh/config through Path.home(). Without this a
|
|
11
|
+
test that registers a host appends an ``Include`` for its temp directory
|
|
12
|
+
to the developer's real ~/.ssh/config, and that temp config's
|
|
13
|
+
``ProxyCommand`` then shadows the real one on the next ssh connection.
|
|
14
|
+
"""
|
|
15
|
+
home = tmp_path_factory.mktemp("home")
|
|
16
|
+
monkeypatch.setenv("HOME", str(home))
|
|
17
|
+
monkeypatch.setenv("USERPROFILE", str(home))
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
version = 1
|
|
2
2
|
revision = 3
|
|
3
|
-
requires-python = ">=3.
|
|
4
|
-
resolution-markers = [
|
|
5
|
-
"python_full_version >= '3.11'",
|
|
6
|
-
"python_full_version < '3.11'",
|
|
7
|
-
]
|
|
3
|
+
requires-python = ">=3.11"
|
|
8
4
|
|
|
9
5
|
[[package]]
|
|
10
6
|
name = "boolean-py"
|
|
@@ -17,30 +13,30 @@ wheels = [
|
|
|
17
13
|
|
|
18
14
|
[[package]]
|
|
19
15
|
name = "boto3"
|
|
20
|
-
version = "1.
|
|
16
|
+
version = "1.43.123"
|
|
21
17
|
source = { registry = "https://pypi.org/simple" }
|
|
22
18
|
dependencies = [
|
|
23
19
|
{ name = "botocore" },
|
|
24
20
|
{ name = "jmespath" },
|
|
25
21
|
{ name = "s3transfer" },
|
|
26
22
|
]
|
|
27
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
23
|
+
sdist = { url = "https://files.pythonhosted.org/packages/fc/8a/64b46f075149f9160da44aa7e1052dd18431b9ad4435beb0cfb02cc48624/boto3-1.43.123.tar.gz", hash = "sha256:055fabb990c5d2f31fce4ca569255bd640cdd11a3ca68c9ecad35f4f8a5b83b5", size = 112638, upload-time = "2026-10-30T19:18:50.085Z" }
|
|
28
24
|
wheels = [
|
|
29
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
25
|
+
{ url = "https://files.pythonhosted.org/packages/96/b2/a7986c327f80aa6f1544f4cb8f2fa7da4e1fccd472379a21cad0508b8a0e/boto3-1.43.123-py3-none-any.whl", hash = "sha256:d18d66e1e13faa0c25d0b1b8c5ce946e29fb5fc0b6456b655a93a678ff4cc313", size = 140044, upload-time = "2026-10-30T19:18:47.734Z" },
|
|
30
26
|
]
|
|
31
27
|
|
|
32
28
|
[[package]]
|
|
33
29
|
name = "botocore"
|
|
34
|
-
version = "1.
|
|
30
|
+
version = "1.43.123"
|
|
35
31
|
source = { registry = "https://pypi.org/simple" }
|
|
36
32
|
dependencies = [
|
|
37
33
|
{ name = "jmespath" },
|
|
38
34
|
{ name = "python-dateutil" },
|
|
39
35
|
{ name = "urllib3" },
|
|
40
36
|
]
|
|
41
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
37
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e0/de/011fc2a47fb066c47064b122498d2fd21f55bc90ea514acbddc37ca0f8c1/botocore-1.43.123.tar.gz", hash = "sha256:80948cb9b1cdf1a1a25809089a42e3a1bc4af0258d198222db6e97dcc660dd0c", size = 16486269, upload-time = "2026-10-30T19:18:44.609Z" }
|
|
42
38
|
wheels = [
|
|
43
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
39
|
+
{ url = "https://files.pythonhosted.org/packages/db/96/4f2dffd304425c07160ab2c12cb13322d852fd956fe9d4386228c93f02ea/botocore-1.43.123-py3-none-any.whl", hash = "sha256:e30580f9c1282c321529238ff8ff75066096a2adbd0a293c8ae592c21d1733a3", size = 16185987, upload-time = "2026-10-30T19:18:39.794Z" },
|
|
44
40
|
]
|
|
45
41
|
|
|
46
42
|
[[package]]
|
|
@@ -58,8 +54,7 @@ wheels = [
|
|
|
58
54
|
|
|
59
55
|
[package.optional-dependencies]
|
|
60
56
|
filecache = [
|
|
61
|
-
{ name = "filelock"
|
|
62
|
-
{ name = "filelock", version = "4.2.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
|
|
57
|
+
{ name = "filelock" },
|
|
63
58
|
]
|
|
64
59
|
|
|
65
60
|
[[package]]
|
|
@@ -77,22 +72,6 @@ version = "3.4.6"
|
|
|
77
72
|
source = { registry = "https://pypi.org/simple" }
|
|
78
73
|
sdist = { url = "https://files.pythonhosted.org/packages/7b/60/e3bec1881450851b087e301bedc3daa9377a4d45f1c26aa90b0b235e38aa/charset_normalizer-3.4.6.tar.gz", hash = "sha256:1ae6b62897110aa7c79ea2f5dd38d1abca6db663687c0b1ad9aed6f6bae3d9d6", size = 143363, upload-time = "2026-03-15T18:53:25.478Z" }
|
|
79
74
|
wheels = [
|
|
80
|
-
{ url = "https://files.pythonhosted.org/packages/e6/8c/2c56124c6dc53a774d435f985b5973bc592f42d437be58c0c92d65ae7296/charset_normalizer-3.4.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2e1d8ca8611099001949d1cdfaefc510cf0f212484fe7c565f735b68c78c3c95", size = 298751, upload-time = "2026-03-15T18:50:00.003Z" },
|
|
81
|
-
{ url = "https://files.pythonhosted.org/packages/86/2a/2a7db6b314b966a3bcad8c731c0719c60b931b931de7ae9f34b2839289ee/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e25369dc110d58ddf29b949377a93e0716d72a24f62bad72b2b39f155949c1fd", size = 200027, upload-time = "2026-03-15T18:50:01.702Z" },
|
|
82
|
-
{ url = "https://files.pythonhosted.org/packages/68/f2/0fe775c74ae25e2a3b07b01538fc162737b3e3f795bada3bc26f4d4d495c/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:259695e2ccc253feb2a016303543d691825e920917e31f894ca1a687982b1de4", size = 220741, upload-time = "2026-03-15T18:50:03.194Z" },
|
|
83
|
-
{ url = "https://files.pythonhosted.org/packages/10/98/8085596e41f00b27dd6aa1e68413d1ddda7e605f34dd546833c61fddd709/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:dda86aba335c902b6149a02a55b38e96287157e609200811837678214ba2b1db", size = 215802, upload-time = "2026-03-15T18:50:05.859Z" },
|
|
84
|
-
{ url = "https://files.pythonhosted.org/packages/fd/ce/865e4e09b041bad659d682bbd98b47fb490b8e124f9398c9448065f64fee/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51fb3c322c81d20567019778cb5a4a6f2dc1c200b886bc0d636238e364848c89", size = 207908, upload-time = "2026-03-15T18:50:07.676Z" },
|
|
85
|
-
{ url = "https://files.pythonhosted.org/packages/a8/54/8c757f1f7349262898c2f169e0d562b39dcb977503f18fdf0814e923db78/charset_normalizer-3.4.6-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:4482481cb0572180b6fd976a4d5c72a30263e98564da68b86ec91f0fe35e8565", size = 194357, upload-time = "2026-03-15T18:50:09.327Z" },
|
|
86
|
-
{ url = "https://files.pythonhosted.org/packages/6f/29/e88f2fac9218907fc7a70722b393d1bbe8334c61fe9c46640dba349b6e66/charset_normalizer-3.4.6-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:39f5068d35621da2881271e5c3205125cc456f54e9030d3f723288c873a71bf9", size = 205610, upload-time = "2026-03-15T18:50:10.732Z" },
|
|
87
|
-
{ url = "https://files.pythonhosted.org/packages/4c/c5/21d7bb0cb415287178450171d130bed9d664211fdd59731ed2c34267b07d/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8bea55c4eef25b0b19a0337dc4e3f9a15b00d569c77211fa8cde38684f234fb7", size = 203512, upload-time = "2026-03-15T18:50:12.535Z" },
|
|
88
|
-
{ url = "https://files.pythonhosted.org/packages/a4/be/ce52f3c7fdb35cc987ad38a53ebcef52eec498f4fb6c66ecfe62cfe57ba2/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:f0cdaecd4c953bfae0b6bb64910aaaca5a424ad9c72d85cb88417bb9814f7550", size = 195398, upload-time = "2026-03-15T18:50:14.236Z" },
|
|
89
|
-
{ url = "https://files.pythonhosted.org/packages/81/a0/3ab5dd39d4859a3555e5dadfc8a9fa7f8352f8c183d1a65c90264517da0e/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:150b8ce8e830eb7ccb029ec9ca36022f756986aaaa7956aad6d9ec90089338c0", size = 221772, upload-time = "2026-03-15T18:50:15.581Z" },
|
|
90
|
-
{ url = "https://files.pythonhosted.org/packages/04/6e/6a4e41a97ba6b2fa87f849c41e4d229449a586be85053c4d90135fe82d26/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:e68c14b04827dd76dcbd1aeea9e604e3e4b78322d8faf2f8132c7138efa340a8", size = 205759, upload-time = "2026-03-15T18:50:17.047Z" },
|
|
91
|
-
{ url = "https://files.pythonhosted.org/packages/db/3b/34a712a5ee64a6957bf355b01dc17b12de457638d436fdb05d01e463cd1c/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:3778fd7d7cd04ae8f54651f4a7a0bd6e39a0cf20f801720a4c21d80e9b7ad6b0", size = 216938, upload-time = "2026-03-15T18:50:18.44Z" },
|
|
92
|
-
{ url = "https://files.pythonhosted.org/packages/cb/05/5bd1e12da9ab18790af05c61aafd01a60f489778179b621ac2a305243c62/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dad6e0f2e481fffdcf776d10ebee25e0ef89f16d691f1e5dee4b586375fdc64b", size = 210138, upload-time = "2026-03-15T18:50:19.852Z" },
|
|
93
|
-
{ url = "https://files.pythonhosted.org/packages/bd/8e/3cb9e2d998ff6b21c0a1860343cb7b83eba9cdb66b91410e18fc4969d6ab/charset_normalizer-3.4.6-cp310-cp310-win32.whl", hash = "sha256:74a2e659c7ecbc73562e2a15e05039f1e22c75b7c7618b4b574a3ea9118d1557", size = 144137, upload-time = "2026-03-15T18:50:21.505Z" },
|
|
94
|
-
{ url = "https://files.pythonhosted.org/packages/d8/8f/78f5489ffadb0db3eb7aff53d31c24531d33eb545f0c6f6567c25f49a5ff/charset_normalizer-3.4.6-cp310-cp310-win_amd64.whl", hash = "sha256:aa9cccf4a44b9b62d8ba8b4dd06c649ba683e4bf04eea606d2e94cfc2d6ff4d6", size = 154244, upload-time = "2026-03-15T18:50:22.81Z" },
|
|
95
|
-
{ url = "https://files.pythonhosted.org/packages/e4/74/e472659dffb0cadb2f411282d2d76c60da1fc94076d7fffed4ae8a93ec01/charset_normalizer-3.4.6-cp310-cp310-win_arm64.whl", hash = "sha256:e985a16ff513596f217cee86c21371b8cd011c0f6f056d0920aa2d926c544058", size = 143312, upload-time = "2026-03-15T18:50:24.074Z" },
|
|
96
75
|
{ url = "https://files.pythonhosted.org/packages/62/28/ff6f234e628a2de61c458be2779cb182bc03f6eec12200d4a525bbfc9741/charset_normalizer-3.4.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:82060f995ab5003a2d6e0f4ad29065b7672b6593c8c63559beefe5b443242c3e", size = 293582, upload-time = "2026-03-15T18:50:25.454Z" },
|
|
97
76
|
{ url = "https://files.pythonhosted.org/packages/1c/b7/b1a117e5385cbdb3205f6055403c2a2a220c5ea80b8716c324eaf75c5c95/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60c74963d8350241a79cb8feea80e54d518f72c26db618862a8f53e5023deaf9", size = 197240, upload-time = "2026-03-15T18:50:27.196Z" },
|
|
98
77
|
{ url = "https://files.pythonhosted.org/packages/a1/5f/2574f0f09f3c3bc1b2f992e20bce6546cb1f17e111c5be07308dc5427956/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6e4333fb15c83f7d1482a76d45a0818897b3d33f00efd215528ff7c51b8e35d", size = 217363, upload-time = "2026-03-15T18:50:28.601Z" },
|
|
@@ -178,14 +157,11 @@ wheels = [
|
|
|
178
157
|
|
|
179
158
|
[[package]]
|
|
180
159
|
name = "click"
|
|
181
|
-
version = "8.
|
|
160
|
+
version = "8.5.0"
|
|
182
161
|
source = { registry = "https://pypi.org/simple" }
|
|
183
|
-
|
|
184
|
-
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
185
|
-
]
|
|
186
|
-
sdist = { url = "https://files.pythonhosted.org/packages/76/d4/81420972a676e8ffea40450d8c8c92943e7218a78fe9b64359836cc9876b/click-8.4.2.tar.gz", hash = "sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6", size = 338000, upload-time = "2026-06-24T17:45:15.148Z" }
|
|
162
|
+
sdist = { url = "https://files.pythonhosted.org/packages/c7/0e/7fa0ef50764b67090eca4114772a2abf8b6148198475e54c660b97caeee6/click-8.5.0.tar.gz", hash = "sha256:ba0d2089de75ea0310e2dde03160e6ca10009947fb95a182f9b54021bb272e34", size = 382235, upload-time = "2026-08-26T13:33:14.56Z" }
|
|
187
163
|
wheels = [
|
|
188
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
164
|
+
{ url = "https://files.pythonhosted.org/packages/58/50/6c0d534c5f134586a8e1ba4e330569e32f057e33372ae556463212fb4cd3/click-8.5.0-py3-none-any.whl", hash = "sha256:255bc9599cf7748b4b1a446ccc735421bd08a2ae529a8b88597d3de5664ee360", size = 125251, upload-time = "2026-08-26T13:33:12.928Z" },
|
|
189
165
|
]
|
|
190
166
|
|
|
191
167
|
[[package]]
|
|
@@ -252,37 +228,10 @@ wheels = [
|
|
|
252
228
|
{ url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" },
|
|
253
229
|
]
|
|
254
230
|
|
|
255
|
-
[[package]]
|
|
256
|
-
name = "exceptiongroup"
|
|
257
|
-
version = "1.3.1"
|
|
258
|
-
source = { registry = "https://pypi.org/simple" }
|
|
259
|
-
dependencies = [
|
|
260
|
-
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
|
|
261
|
-
]
|
|
262
|
-
sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" }
|
|
263
|
-
wheels = [
|
|
264
|
-
{ url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" },
|
|
265
|
-
]
|
|
266
|
-
|
|
267
|
-
[[package]]
|
|
268
|
-
name = "filelock"
|
|
269
|
-
version = "4.1.0"
|
|
270
|
-
source = { registry = "https://pypi.org/simple" }
|
|
271
|
-
resolution-markers = [
|
|
272
|
-
"python_full_version < '3.11'",
|
|
273
|
-
]
|
|
274
|
-
sdist = { url = "https://files.pythonhosted.org/packages/4c/58/6fd434bec86eff7c38a3168454cb132b762b2bea9b3ac094101a2f7bc32a/filelock-4.1.0.tar.gz", hash = "sha256:ad7f724afef953e731b1cc39bcd3a09166d72ed7fcdf29e6e88b1c3235c6715d", size = 561277, upload-time = "2026-10-09T19:57:20.34Z" }
|
|
275
|
-
wheels = [
|
|
276
|
-
{ url = "https://files.pythonhosted.org/packages/ee/86/032133892a5de43b5a98200b01aadcad68cc255e274a762f08b8a76d2912/filelock-4.1.0-py3-none-any.whl", hash = "sha256:2ce9818e3e2d8f284c1a964414447ef148d42a5fd5e2a477a7118e574b293ec1", size = 133003, upload-time = "2026-10-09T19:57:18.716Z" },
|
|
277
|
-
]
|
|
278
|
-
|
|
279
231
|
[[package]]
|
|
280
232
|
name = "filelock"
|
|
281
233
|
version = "4.2.4"
|
|
282
234
|
source = { registry = "https://pypi.org/simple" }
|
|
283
|
-
resolution-markers = [
|
|
284
|
-
"python_full_version >= '3.11'",
|
|
285
|
-
]
|
|
286
235
|
sdist = { url = "https://files.pythonhosted.org/packages/d8/28/3893324bcadf8f89b1616637468d766af3f625008c0735bf704fdfa86617/filelock-4.2.4.tar.gz", hash = "sha256:c6d8663535e1650ee430507b4ffbac7b464dd64b7647ea0112a9f406499d163d", size = 652444, upload-time = "2026-10-19T01:57:51.001Z" }
|
|
287
236
|
wheels = [
|
|
288
237
|
{ url = "https://files.pythonhosted.org/packages/e0/1b/5e74289a1878e666bb4b65fe5805a04cafcac2aa5f519ef1ead67ef91c56/filelock-4.2.4-py3-none-any.whl", hash = "sha256:301241438c57936ef93f4243a94f2559022268bfcf9b375a9a72eb0f8db8358e", size = 162475, upload-time = "2026-10-19T01:57:49.419Z" },
|
|
@@ -354,16 +303,6 @@ version = "1.2.4"
|
|
|
354
303
|
source = { registry = "https://pypi.org/simple" }
|
|
355
304
|
sdist = { url = "https://files.pythonhosted.org/packages/cc/52/1ec7ead2c7528bf3d1db73e886fa4df10f9e6f0eb7854a448b7090cfcef7/msgpack-1.2.4.tar.gz", hash = "sha256:475c44e12f2a5de766a8448783f149c9b33f3f49b88953c6cd739a77d93c732c", size = 197764, upload-time = "2026-10-26T17:55:48.593Z" }
|
|
356
305
|
wheels = [
|
|
357
|
-
{ url = "https://files.pythonhosted.org/packages/a3/d0/68889d2fcead0e81470cf28346a0fce80c451a3e7df9d74b0837f517027e/msgpack-1.2.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2a4e141a9c91d1502cf98f9ca9f87af222c7857e2bfa49c1d81343157c38a28e", size = 91412, upload-time = "2026-10-26T17:53:31.652Z" },
|
|
358
|
-
{ url = "https://files.pythonhosted.org/packages/cc/40/6d7a9b886df357e86f48c82470e281333477eea80aef23c33e87e8244ab5/msgpack-1.2.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0626ea840cce866237c4da08439e9faa9cf79e6e4c62358978ee055961e8cff2", size = 90295, upload-time = "2026-10-26T17:53:33.169Z" },
|
|
359
|
-
{ url = "https://files.pythonhosted.org/packages/86/16/bbb47e6732a2b812dca695dc8f6f5eed69219422ef946088295e1cb7f865/msgpack-1.2.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:25e1f2466c4ea0fb9b694a922f75eb92d7ce6262eda8cb8a5dada34fe990d486", size = 451054, upload-time = "2026-10-26T17:53:34.598Z" },
|
|
360
|
-
{ url = "https://files.pythonhosted.org/packages/a8/f3/d215252efd2befcac420b01889bb17a816194a2c59501a15f7b1136f6591/msgpack-1.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85b79ed643cfde70672152b3d1aee438ca647c5d2ffb7dba7226689ee9f6f44b", size = 461803, upload-time = "2026-10-26T17:53:36.231Z" },
|
|
361
|
-
{ url = "https://files.pythonhosted.org/packages/d0/2d/5063d98e52b2e5252b8fcfaaa99438c1994bedac6ce7761fb9ded8bea810/msgpack-1.2.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c1119e840d2c9164120f067740d99c9608d21d4ee9a172cf0f00dcafdf5624a4", size = 425474, upload-time = "2026-10-26T17:53:37.841Z" },
|
|
362
|
-
{ url = "https://files.pythonhosted.org/packages/40/39/4077628b0c593d09d838de00f80eb726f66c20e83dfc3639b6a70dbfa80c/msgpack-1.2.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ce22584c8b12aa7e424dab08c481afd95ad4bd3007829fd1767d28b4dbbc3167", size = 445334, upload-time = "2026-10-26T17:53:39.448Z" },
|
|
363
|
-
{ url = "https://files.pythonhosted.org/packages/80/19/77a05f14d57c2dfeb85a627d7eb31d54b0393fcb0a4df1a1686d81a95fe4/msgpack-1.2.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:8ab62a50cab6f786d49f3584914c1088b0ed8de76bfe675b26a60c7bec426380", size = 422467, upload-time = "2026-10-26T17:53:40.979Z" },
|
|
364
|
-
{ url = "https://files.pythonhosted.org/packages/89/07/7861755bd759030c051ae238f578806e975dba0c9830be0c7f8998fbf26d/msgpack-1.2.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:429329799c72335b0e37be65964ec5b89062e57fe7ad9ee779b886df5e34ddaf", size = 463319, upload-time = "2026-10-26T17:53:42.767Z" },
|
|
365
|
-
{ url = "https://files.pythonhosted.org/packages/c0/c9/873fbd651d977717a2eee58d5c9277a7999f615d997646c8fb1e68cdc3f0/msgpack-1.2.4-cp310-cp310-win32.whl", hash = "sha256:1cdb51af4f8f8d20af66ea9384883bf99b8ddb3cdf05f09eecda921646e15135", size = 68431, upload-time = "2026-10-26T17:53:44.134Z" },
|
|
366
|
-
{ url = "https://files.pythonhosted.org/packages/7e/28/42c874635d34b35b76011dff6067f986a9c87d225c52347308e97b3409d1/msgpack-1.2.4-cp310-cp310-win_amd64.whl", hash = "sha256:d626fcacecaf3a5bfcd57e35709ce59a56a39cd4a3cd201d1b43c00d20bcbcda", size = 75871, upload-time = "2026-10-26T17:53:45.33Z" },
|
|
367
306
|
{ url = "https://files.pythonhosted.org/packages/64/cb/a3bd4d234c0f2f7e646b9be259b801c5d6a35c97f93dded4f722e6b80acd/msgpack-1.2.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1095b1ebcc8c9d3e70c51240b7160d8e9da66044e0a45c3ef8403d3a9ef0c5ad", size = 90935, upload-time = "2026-10-26T17:53:46.588Z" },
|
|
368
307
|
{ url = "https://files.pythonhosted.org/packages/56/3c/fc87d06bdfc99b302f4379f0eb34bb8695b6ecd90b965652d0a3195d1acd/msgpack-1.2.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a4b47ec7422bef149223786a87df80067ac65bfc7c0565e5cf1dfbdc40acee50", size = 90187, upload-time = "2026-10-26T17:53:48.151Z" },
|
|
369
308
|
{ url = "https://files.pythonhosted.org/packages/05/a3/abebe12c1b589b7eeab60cb87dd5eb398fcf549bdafca8c30d8d73e48493/msgpack-1.2.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c75cfda0d3ccb1f6abc20e0608ad6b226e11f317b5ac297721504d2509e2bd9", size = 466911, upload-time = "2026-10-26T17:53:49.536Z" },
|
|
@@ -487,7 +426,7 @@ wheels = [
|
|
|
487
426
|
|
|
488
427
|
[[package]]
|
|
489
428
|
name = "pip-audit"
|
|
490
|
-
version = "2.10.
|
|
429
|
+
version = "2.10.1"
|
|
491
430
|
source = { registry = "https://pypi.org/simple" }
|
|
492
431
|
dependencies = [
|
|
493
432
|
{ name = "cachecontrol", extra = ["filecache"] },
|
|
@@ -501,9 +440,9 @@ dependencies = [
|
|
|
501
440
|
{ name = "tomli" },
|
|
502
441
|
{ name = "tomli-w" },
|
|
503
442
|
]
|
|
504
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
443
|
+
sdist = { url = "https://files.pythonhosted.org/packages/66/a4/f21d5f0a0edabcbce31560b73c7c5a6f72ae87af4236fd1069c8f59a353d/pip_audit-2.10.1.tar.gz", hash = "sha256:1eb4565d19ebe5d48996f4b770b4d2b32887e12cb12cfa637f1a064011b55ffc", size = 54275, upload-time = "2026-06-10T22:17:01.744Z" }
|
|
505
444
|
wheels = [
|
|
506
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
445
|
+
{ url = "https://files.pythonhosted.org/packages/a3/a7/b0c504148114047bd1bc9d97447453c6850ca176bb2f3c0038835994e8b7/pip_audit-2.10.1-py3-none-any.whl", hash = "sha256:99ef3f600a317c1945f1e89e227ef26e1c2d618429b8bd3fa6f4f7c440c4611a", size = 62023, upload-time = "2026-06-10T22:17:00.309Z" },
|
|
507
446
|
]
|
|
508
447
|
|
|
509
448
|
[[package]]
|
|
@@ -512,7 +451,6 @@ version = "5.5.5"
|
|
|
512
451
|
source = { registry = "https://pypi.org/simple" }
|
|
513
452
|
dependencies = [
|
|
514
453
|
{ name = "prettytable" },
|
|
515
|
-
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
|
516
454
|
]
|
|
517
455
|
sdist = { url = "https://files.pythonhosted.org/packages/7d/18/ddd93af610a04f56a51a27095ddfe55238e1ec236f6758730a0d2c0b49f2/pip_licenses-5.5.5.tar.gz", hash = "sha256:60750c006adf7a0910347b726e8ee9fee3bc8d2e7c8307a5c4ec0776c8e2a276", size = 54955, upload-time = "2026-03-28T22:12:56.48Z" }
|
|
518
456
|
wheels = [
|
|
@@ -594,20 +532,18 @@ wheels = [
|
|
|
594
532
|
|
|
595
533
|
[[package]]
|
|
596
534
|
name = "pytest"
|
|
597
|
-
version = "9.
|
|
535
|
+
version = "9.2.0"
|
|
598
536
|
source = { registry = "https://pypi.org/simple" }
|
|
599
537
|
dependencies = [
|
|
600
538
|
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
601
|
-
{ name = "exceptiongroup", marker = "python_full_version < '3.11'" },
|
|
602
539
|
{ name = "iniconfig" },
|
|
603
540
|
{ name = "packaging" },
|
|
604
541
|
{ name = "pluggy" },
|
|
605
542
|
{ name = "pygments" },
|
|
606
|
-
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
|
607
543
|
]
|
|
608
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
544
|
+
sdist = { url = "https://files.pythonhosted.org/packages/79/42/bb4641652e58dedeac2ec51abc1f8cae4fee4ec63899a0999016229a0f2a/pytest-9.2.0.tar.gz", hash = "sha256:97c4f3b1f3c7414aa36465e09b8220f1d03627993bd51b1282e193753c80557b", size = 1797555, upload-time = "2026-10-27T21:30:20.728Z" }
|
|
609
545
|
wheels = [
|
|
610
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
546
|
+
{ url = "https://files.pythonhosted.org/packages/51/39/1f5d8c8877a0fa327db959c19341d4be61660de1ab6b7391f9eb805bcd67/pytest-9.2.0-py3-none-any.whl", hash = "sha256:07acdcf88ec174f907dc01af70bf52d49b014bbab03faeeade31c96b18c2e588", size = 411776, upload-time = "2026-10-27T21:30:19.131Z" },
|
|
611
547
|
]
|
|
612
548
|
|
|
613
549
|
[[package]]
|
|
@@ -652,39 +588,39 @@ wheels = [
|
|
|
652
588
|
|
|
653
589
|
[[package]]
|
|
654
590
|
name = "ruff"
|
|
655
|
-
version = "0.
|
|
656
|
-
source = { registry = "https://pypi.org/simple" }
|
|
657
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
658
|
-
wheels = [
|
|
659
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
660
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
661
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
662
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
663
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
664
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
665
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
666
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
667
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
668
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
669
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
670
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
671
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
672
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
673
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
674
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
675
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
591
|
+
version = "0.17.3"
|
|
592
|
+
source = { registry = "https://pypi.org/simple" }
|
|
593
|
+
sdist = { url = "https://files.pythonhosted.org/packages/59/73/81f140c4edd9cc323de5478e6bbd3bbcfae9a82692df1a258de8cec6a6d2/ruff-0.17.3.tar.gz", hash = "sha256:a57049c8addb3662073859bb55a7ad35aa54f8a7c9ed268911d1333c5aadaaa9", size = 5339444, upload-time = "2026-10-27T00:34:05.914Z" }
|
|
594
|
+
wheels = [
|
|
595
|
+
{ url = "https://files.pythonhosted.org/packages/9e/8c/083365310c4e79c842f25bf5a842facbd9b0c0ec336f96dffa5074fe723d/ruff-0.17.3-py3-none-linux_armv6l.whl", hash = "sha256:ab86b84cd9d05e56d329742c0cabdcbe2d1d56c98f4a04aab9b5b66196febfb4", size = 10216522, upload-time = "2026-10-27T00:33:29.822Z" },
|
|
596
|
+
{ url = "https://files.pythonhosted.org/packages/72/26/4b2edf31cfebe9605d8f6ed8f1d6f376d3a53d4c9a123e62661c64c440f0/ruff-0.17.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e407b4a6852853a9a2cdce96963e94ad9775578bb44e7561a0f2829f3cc04b11", size = 10217786, upload-time = "2026-10-27T00:33:33.949Z" },
|
|
597
|
+
{ url = "https://files.pythonhosted.org/packages/a2/7e/537aba4b7f54397a374d2f6a6fc93e9c8015e18553f31a4a7b7dbced48b5/ruff-0.17.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b75cc113b3aca388933d8296b667b1ac401a80317ea3074c9b0a66541199da29", size = 9440362, upload-time = "2026-10-27T00:33:35.784Z" },
|
|
598
|
+
{ url = "https://files.pythonhosted.org/packages/3d/66/283e39734f66c8a5ebaa93c22eb7b7515779a0b1d5a5c0ad20e05c0edb41/ruff-0.17.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab5fa7ed5ce18554ea69d850ad162cbaa0c85fc47c08d83a569f806681c9a6ad", size = 10094281, upload-time = "2026-10-27T00:33:38.216Z" },
|
|
599
|
+
{ url = "https://files.pythonhosted.org/packages/21/4c/1ffc768497bd025a32c72152771e40c0b99bddc5cc6e4f50c7949a395346/ruff-0.17.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c673c170e27834d1262e3a9c1e97bdc9b9c3b180c63d89173ce69747232474c1", size = 10022543, upload-time = "2026-10-27T00:33:40.181Z" },
|
|
600
|
+
{ url = "https://files.pythonhosted.org/packages/73/c3/f90db547301080fcb82c92abf914c8bd57b89911d9b65a6c4cc6b52d0635/ruff-0.17.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a754c0341bc9ca151b7b335988b3263921c08859f84ca219b70cee825571b6f", size = 10683921, upload-time = "2026-10-27T00:33:42.182Z" },
|
|
601
|
+
{ url = "https://files.pythonhosted.org/packages/e5/98/92d4a8a26c6c96cf1a5b34dd59036d8a71e52d650aab065c58867e964e63/ruff-0.17.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4590b9d86c0b1543ebb09094254e191cd43fe8edaf330baa035aab03da251532", size = 11373408, upload-time = "2026-10-27T00:33:44.19Z" },
|
|
602
|
+
{ url = "https://files.pythonhosted.org/packages/43/02/1f24d2e3064c9753926deeb901afa57777b37ee46799b09ddd7aee6e5145/ruff-0.17.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bbde18beccd98c29a227c63c99022e3443b99258e08326df6425dfe0443705ef", size = 10977469, upload-time = "2026-10-27T00:33:46.179Z" },
|
|
603
|
+
{ url = "https://files.pythonhosted.org/packages/f0/20/fecedea2209f574ab92033b344e01a7f0c2dc76c6d6d19a14c9f8141173f/ruff-0.17.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fa4b0f931cdbcb8a52044f370a3eb429fb42eb88807b0e800fcaa98dd42b24e", size = 10577491, upload-time = "2026-10-27T00:33:48.233Z" },
|
|
604
|
+
{ url = "https://files.pythonhosted.org/packages/33/36/b93fdf0bc6f84f0cd487aadfb0354deb40013669ea35ac3d26855de1e959/ruff-0.17.3-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:39405f341deec934b4289634324ad695f72df2970f9121582872eaf5b722f0f5", size = 10608748, upload-time = "2026-10-27T00:33:50.284Z" },
|
|
605
|
+
{ url = "https://files.pythonhosted.org/packages/5d/b7/7d3f5f14145daead1efb0b9a8289ed1daa100f419d60774375951723ce00/ruff-0.17.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:68074094f55ca3d29ab19491f640282f7a84061c4c7977aa5094b968ca457e9a", size = 10075057, upload-time = "2026-10-27T00:33:52.074Z" },
|
|
606
|
+
{ url = "https://files.pythonhosted.org/packages/b0/ed/93ff7a5909ee56e2bd4b982deae9e0efb2724417874a90c9e41ad66c6dd7/ruff-0.17.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:27bb571ac78fef178fe5118d2827df95c2aae74a48fff2b15f6acd03af5ff5bb", size = 10022431, upload-time = "2026-10-27T00:33:54.061Z" },
|
|
607
|
+
{ url = "https://files.pythonhosted.org/packages/9b/07/a83b9eeec8c1c3c0e4eda15f06c3a91001bfd2687ea2f07b750719bf9712/ruff-0.17.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:029c37cbd3de48ca37aa12117bead2d065f15da17d66bf84e0d4274013705db2", size = 10394903, upload-time = "2026-10-27T00:33:56.158Z" },
|
|
608
|
+
{ url = "https://files.pythonhosted.org/packages/af/b2/05c39857c2526fcbebe46ad93a8dc97424656dfef14d3ef933abe1ffd331/ruff-0.17.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:692fdb46d0fd9c71e380947dc5fc72f2c3f881073bc1f739e4579376231affbe", size = 10799780, upload-time = "2026-10-27T00:33:58.204Z" },
|
|
609
|
+
{ url = "https://files.pythonhosted.org/packages/ec/d9/47171a16739eb7a353936b31c20cf54340531e68c9af7d72fd7a784e235d/ruff-0.17.3-py3-none-win32.whl", hash = "sha256:46539cb031b01fd29ae0a02142483c46640b233ee12bb1c1b690bffa1555d5ca", size = 9908481, upload-time = "2026-10-27T00:34:00.087Z" },
|
|
610
|
+
{ url = "https://files.pythonhosted.org/packages/d0/a0/f08c1631bfd81faa6a90eaf70c37c786c11bed2046302b56bb506c25e1a0/ruff-0.17.3-py3-none-win_amd64.whl", hash = "sha256:56b8ffb3f3b3cbccb8b76b71b38261b7ed982ef5d20f5b447b1b61a7f4949b24", size = 10341333, upload-time = "2026-10-27T00:34:02.099Z" },
|
|
611
|
+
{ url = "https://files.pythonhosted.org/packages/99/d5/4ad4ed31413c301430918e70d3d38ae6f097af0766cb9ab8c9d502b2a4d6/ruff-0.17.3-py3-none-win_arm64.whl", hash = "sha256:81fce74bcd6be0e9da7c67c7553fd0f1f12964a2052cd728ef917b937a5ca1d9", size = 9854332, upload-time = "2026-10-27T00:34:03.847Z" },
|
|
676
612
|
]
|
|
677
613
|
|
|
678
614
|
[[package]]
|
|
679
615
|
name = "s3transfer"
|
|
680
|
-
version = "0.
|
|
616
|
+
version = "0.19.3"
|
|
681
617
|
source = { registry = "https://pypi.org/simple" }
|
|
682
618
|
dependencies = [
|
|
683
619
|
{ name = "botocore" },
|
|
684
620
|
]
|
|
685
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
621
|
+
sdist = { url = "https://files.pythonhosted.org/packages/49/c5/0a5ce655109cb96b8dfad36908a4e108d15f5dc2eff8fbc3146c4312e704/s3transfer-0.19.3.tar.gz", hash = "sha256:8326acc3d056d7f7b8a37110c7d2aea41f67e83f6ae79cd3b5fbcca34c726406", size = 166087, upload-time = "2026-10-19T19:19:49.751Z" }
|
|
686
622
|
wheels = [
|
|
687
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
623
|
+
{ url = "https://files.pythonhosted.org/packages/e2/a4/88f9e10498759121060b8050a1554753dfc04df39bbbcc7aad9ecc8d9440/s3transfer-0.19.3-py3-none-any.whl", hash = "sha256:24eb7535804306355e31c952a90022bf5b2f9d760f9a11062c7493a217c08553", size = 90252, upload-time = "2026-10-19T19:19:48.309Z" },
|
|
688
624
|
]
|
|
689
625
|
|
|
690
626
|
[[package]]
|
cloudx_proxy-0.17.7/.releaserc
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"branches": ["main"],
|
|
3
|
-
"tagFormat": "v${version}",
|
|
4
|
-
"repositoryUrl": "https://github.com/easytocloud/cloudX-proxy.git",
|
|
5
|
-
"plugins": [
|
|
6
|
-
["@semantic-release/commit-analyzer", {
|
|
7
|
-
"preset": "angular",
|
|
8
|
-
"releaseRules": [
|
|
9
|
-
{"type": "feat", "release": "minor"},
|
|
10
|
-
{"type": "fix", "release": "patch"},
|
|
11
|
-
{"type": "docs", "release": "patch"},
|
|
12
|
-
{"type": "style", "release": "patch"},
|
|
13
|
-
{"type": "refactor", "release": "patch"},
|
|
14
|
-
{"type": "perf", "release": "patch"},
|
|
15
|
-
{"type": "test", "release": "patch"},
|
|
16
|
-
{"type": "build", "release": "patch"},
|
|
17
|
-
{"type": "ci", "release": "patch"},
|
|
18
|
-
{"type": "chore", "release": "patch"}
|
|
19
|
-
]
|
|
20
|
-
}],
|
|
21
|
-
"@semantic-release/release-notes-generator",
|
|
22
|
-
[
|
|
23
|
-
"@semantic-release/changelog",
|
|
24
|
-
{
|
|
25
|
-
"changelogFile": "CHANGELOG.md"
|
|
26
|
-
}
|
|
27
|
-
],
|
|
28
|
-
[
|
|
29
|
-
"@semantic-release/git",
|
|
30
|
-
{
|
|
31
|
-
"assets": [
|
|
32
|
-
"CHANGELOG.md"
|
|
33
|
-
]
|
|
34
|
-
}
|
|
35
|
-
],
|
|
36
|
-
"@semantic-release/github"
|
|
37
|
-
]
|
|
38
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|