uv-upsync 1.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. uv_upsync-1.1.2/.editorconfig +15 -0
  2. uv_upsync-1.1.2/.github/.codecov.yaml +7 -0
  3. uv_upsync-1.1.2/.github/FUNDING.yaml +1 -0
  4. uv_upsync-1.1.2/.github/ISSUE_TEMPLATE/---bug-report.yaml +63 -0
  5. uv_upsync-1.1.2/.github/ISSUE_TEMPLATE/---documentation.yaml +41 -0
  6. uv_upsync-1.1.2/.github/ISSUE_TEMPLATE/---feature-request.yaml +57 -0
  7. uv_upsync-1.1.2/.github/ISSUE_TEMPLATE/config.yaml +1 -0
  8. uv_upsync-1.1.2/.github/PULL_REQUEST_TEMPLATE.md +23 -0
  9. uv_upsync-1.1.2/.github/dependabot.yaml +20 -0
  10. uv_upsync-1.1.2/.github/labels.yaml +55 -0
  11. uv_upsync-1.1.2/.github/workflows/labels.yaml +26 -0
  12. uv_upsync-1.1.2/.github/workflows/linters.yaml +42 -0
  13. uv_upsync-1.1.2/.github/workflows/release.yaml +46 -0
  14. uv_upsync-1.1.2/.github/workflows/tests.yaml +54 -0
  15. uv_upsync-1.1.2/.gitignore +157 -0
  16. uv_upsync-1.1.2/CHANGELOG.md +44 -0
  17. uv_upsync-1.1.2/CODE_OF_CONDUCT.md +109 -0
  18. uv_upsync-1.1.2/CONTRIBUTING.md +135 -0
  19. uv_upsync-1.1.2/LICENSE +21 -0
  20. uv_upsync-1.1.2/PKG-INFO +238 -0
  21. uv_upsync-1.1.2/README.md +203 -0
  22. uv_upsync-1.1.2/SECURITY.md +24 -0
  23. uv_upsync-1.1.2/assets/logo.svg +2 -0
  24. uv_upsync-1.1.2/pyproject.toml +158 -0
  25. uv_upsync-1.1.2/src/uv_upsync/__init__.py +6 -0
  26. uv_upsync-1.1.2/src/uv_upsync/__main__.py +150 -0
  27. uv_upsync-1.1.2/src/uv_upsync/commands.py +43 -0
  28. uv_upsync-1.1.2/src/uv_upsync/exceptions.py +38 -0
  29. uv_upsync-1.1.2/src/uv_upsync/logging.py +34 -0
  30. uv_upsync-1.1.2/src/uv_upsync/parsers.py +142 -0
  31. uv_upsync-1.1.2/src/uv_upsync/pypi.py +33 -0
  32. uv_upsync-1.1.2/src/uv_upsync/uv.py +24 -0
  33. uv_upsync-1.1.2/tests/__init__.py +3 -0
  34. uv_upsync-1.1.2/tests/conftest.py +12 -0
  35. uv_upsync-1.1.2/tests/test_commands.py +135 -0
  36. uv_upsync-1.1.2/tests/test_exceptions.py +109 -0
  37. uv_upsync-1.1.2/tests/test_logging.py +120 -0
  38. uv_upsync-1.1.2/tests/test_parsers.py +269 -0
  39. uv_upsync-1.1.2/tests/test_pypi.py +99 -0
  40. uv_upsync-1.1.2/tests/test_uv.py +92 -0
  41. uv_upsync-1.1.2/uv.lock +1342 -0
@@ -0,0 +1,15 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ end_of_line = lf
6
+ indent_size = 2
7
+ indent_style = space
8
+ insert_final_newline = true
9
+ max_line_length = 120
10
+ tab_width = 2
11
+ trim_trailing_whitespace = true
12
+
13
+ [{*.py,*.pyi}]
14
+ indent_size = 4
15
+ tab_width = 4
@@ -0,0 +1,7 @@
1
+ coverage:
2
+ status:
3
+ project:
4
+ default:
5
+ target: 95%
6
+ threshold: 1%
7
+ patch: off
@@ -0,0 +1 @@
1
+ github: pivoshenko
@@ -0,0 +1,63 @@
1
+ name: Bug Report
2
+ labels: ["type: bug"]
3
+ description: Create a report to help us improve
4
+
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thank you for taking the time to file a complete bug report.
10
+ Before submitting your issue, please review [the contribution guidelines](https://github.com/pivoshenko/uv-upsync/blob/main/CONTRIBUTING.md).
11
+ Feel free to use Markdown syntax in text areas.
12
+
13
+ - type: textarea
14
+ attributes:
15
+ label: Description
16
+ description: |
17
+ Please describe what happened, with as much pertinent information as possible.
18
+ If applicable, add screenshots to help explain your problem.
19
+ Also, ensure that the feature is not already implemented in the [latest](https://github.com/pivoshenko/uv-upsync/releases/latest) release.
20
+ validations:
21
+ required: true
22
+
23
+ - type: textarea
24
+ attributes:
25
+ label: Workarounds
26
+ description: |
27
+ Is there a mitigation or workaround that allows users to avoid the issue for now?
28
+ validations:
29
+ required: true
30
+
31
+ - type: input
32
+ attributes:
33
+ label: Operating System
34
+ description: |
35
+ What operating system are you using?
36
+ placeholder: "Fedora 39"
37
+ validations:
38
+ required: true
39
+
40
+ - type: input
41
+ attributes:
42
+ label: uv version
43
+ description: |
44
+ Please attach the output from `uv --version`
45
+ validations:
46
+ required: true
47
+
48
+ - type: input
49
+ attributes:
50
+ label: uv-upsync version
51
+ description: |
52
+ Please attach the output from `uv pip show uv-upsync`
53
+ validations:
54
+ required: true
55
+
56
+ - type: textarea
57
+ attributes:
58
+ label: Example pyproject.toml
59
+ description: |
60
+ Please provide an example `pyproject.toml` demonstrating the issue.
61
+ render: TOML
62
+ validations:
63
+ required: false
@@ -0,0 +1,41 @@
1
+ name: Documentation Issue
2
+ labels: ["type: documentation"]
3
+ description: Did you find errors, omissions, or anything unclear in the documentation?
4
+
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thank you for taking the time to file a complete documentation issue.
10
+ Before submitting your issue, please review [the contribution guidelines](https://github.com/pivoshenko/uv-upsync/blob/main/CONTRIBUTING.md).
11
+ Feel free to use Markdown syntax in the text areas.
12
+
13
+ - type: dropdown
14
+ attributes:
15
+ label: Issue Type
16
+ description: |
17
+ What best describes the documentation issue?
18
+ options:
19
+ - Documentation needs improvement
20
+ - Documentation is missing
21
+ - Error in existing documentation
22
+ - Documentation is unclear
23
+ - Other documentation concern
24
+ validations:
25
+ required: true
26
+
27
+ - type: input
28
+ attributes:
29
+ label: Existing Documentation Link
30
+ description: |
31
+ If the documentation in question exists, please provide a link to it.
32
+ validations:
33
+ required: false
34
+
35
+ - type: textarea
36
+ attributes:
37
+ label: Description
38
+ description: |
39
+ Please describe the issue with as much relevant detail as possible.
40
+ validations:
41
+ required: true
@@ -0,0 +1,57 @@
1
+ name: Feature Request
2
+ labels: ["type: enhancement"]
3
+ description: Suggest an idea for this project
4
+
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thank you for taking the time to submit a complete feature request.
10
+ Before submitting your issue, please review [the contribution guidelines](https://github.com/pivoshenko/uv-upsync/blob/main/CONTRIBUTING.md).
11
+ For trivial improvements, please consider submitting a pull request instead.
12
+ Feel free to use Markdown syntax in all text areas.
13
+
14
+ - type: dropdown
15
+ attributes:
16
+ label: Feature Type
17
+ description: |
18
+ What best describes this feature request?
19
+ options:
20
+ - Brand new capability
21
+ - Change to current behaviour
22
+ - Other
23
+ validations:
24
+ required: true
25
+
26
+ - type: textarea
27
+ attributes:
28
+ label: Problem Statement
29
+ description: |
30
+ Is your feature request related to a problem? Please provide a clear and concise description.
31
+ Include screenshots if they help explain the issue.
32
+ validations:
33
+ required: false
34
+
35
+ - type: textarea
36
+ attributes:
37
+ label: Proposed Feature
38
+ description: |
39
+ Please describe the desired feature with as much pertinent information as possible.
40
+ validations:
41
+ required: true
42
+
43
+ - type: textarea
44
+ attributes:
45
+ label: Impact and Motivation
46
+ description: |
47
+ Please explain the motivation for this feature. How would it improve or impact users, and why is it important?
48
+ validations:
49
+ required: true
50
+
51
+ - type: textarea
52
+ attributes:
53
+ label: Current Workarounds
54
+ description: |
55
+ Are there any existing workarounds or addons that allow users to achieve similar functionality today?
56
+ validations:
57
+ required: false
@@ -0,0 +1 @@
1
+ blank_issues_enabled: false
@@ -0,0 +1,23 @@
1
+ # Pull Request Checklist
2
+
3
+ **Resolves: #issue-number-here**
4
+
5
+ ## Summary
6
+
7
+ <!-- Provide a short summary of your changes -->
8
+
9
+ ## Checklist
10
+
11
+ - [ ] My code follows the project style guidelines
12
+ - [ ] I have performed a self-review of my code
13
+ - [ ] I have commented my code, particularly in hard-to-understand areas
14
+ - [ ] I have made corresponding changes to the documentation
15
+ - [ ] My changes generate no new warnings or errors
16
+
17
+ ## Screenshots (if applicable)
18
+
19
+ <!-- Add screenshots to help explain your changes if UI is affected -->
20
+
21
+ ## Additional Notes
22
+
23
+ <!-- Add any other context or information for reviewers -->
@@ -0,0 +1,20 @@
1
+ version: 2
2
+
3
+ updates:
4
+ - package-ecosystem: github-actions
5
+ directory: /
6
+ schedule:
7
+ interval: weekly
8
+ labels:
9
+ - "priority: low"
10
+ - "type: maintenance"
11
+ - "type: dependencies"
12
+
13
+ - package-ecosystem: pip
14
+ directory: /
15
+ schedule:
16
+ interval: weekly
17
+ labels:
18
+ - "priority: low"
19
+ - "type: maintenance"
20
+ - "type: dependencies"
@@ -0,0 +1,55 @@
1
+ - name: "type: dependencies"
2
+ description: Pull requests that update a dependency file
3
+ color: 0366d6
4
+
5
+ - name: "priority: critical"
6
+ description: Indicates a critical bug or work that is holding up a lot of other important features or fixes
7
+ color: B60205
8
+
9
+ - name: "priority: high"
10
+ description: Indicates user-visible bugs or important features
11
+ color: D93F0B
12
+
13
+ - name: "priority: medium"
14
+ description: Indicates default priority, 'should be done' but isn't prioritised ahead of others
15
+ color: FBCA04
16
+
17
+ - name: "priority: low"
18
+ description: Indicates low priority, unlikely to be done unless it becomes important to more people
19
+ color: 0E8A16
20
+
21
+ - name: "status: blocked"
22
+ description: Indicates an issue that is blocked by another issue or external requirement
23
+ color: E99695
24
+
25
+ - name: "status: duplicate"
26
+ description: Indicates similar issues, pull requests, or discussions
27
+ color: BFDADC
28
+
29
+ - name: "status: good first issue"
30
+ description: Indicates a good issue for first-time contributors
31
+ color: D4C5F9
32
+
33
+ - name: "status: help wanted"
34
+ description: Indicates that a maintainer wants help on an issue or pull request
35
+ color: C5DEF5
36
+
37
+ - name: "type: breaking"
38
+ description: Indicates a BREAKING CHANGE
39
+ color: B60205
40
+
41
+ - name: "type: bug"
42
+ description: Indicates an unexpected problem or unintended behavior
43
+ color: D93F0B
44
+
45
+ - name: "type: documentation"
46
+ description: Indicates a need for improvement or addition to documentation
47
+ color: 006B75
48
+
49
+ - name: "type: enhancement"
50
+ description: Indicates a new feature request
51
+ color: 0E8A16
52
+
53
+ - name: "type: maintenance"
54
+ description: Indicates changes to the CI, etc.; a code change that does not fix a bug or add a feature
55
+ color: FBCA04
@@ -0,0 +1,26 @@
1
+ # Requires GitHub secrets
2
+ # - GH_TOKEN
3
+
4
+ name: Update GitHub Labels
5
+
6
+ on:
7
+ push:
8
+ branches: ["main"]
9
+ paths:
10
+ - ".github/labels.yaml"
11
+ - ".github/workflows/labels.yaml"
12
+
13
+ jobs:
14
+ labels:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Checkout repository
18
+ uses: actions/checkout@v5
19
+ with:
20
+ fetch-depth: 0
21
+
22
+ - name: Update labels
23
+ uses: crazy-max/ghaction-github-labeler@v5
24
+ with:
25
+ github-token: ${{ secrets.GH_TOKEN }}
26
+ yaml-file: .github/labels.yaml
@@ -0,0 +1,42 @@
1
+ name: Linters
2
+
3
+ on:
4
+ pull_request:
5
+ branches: ["main"]
6
+ push:
7
+ branches: ["main"]
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
11
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
12
+
13
+ defaults:
14
+ run:
15
+ shell: bash
16
+
17
+ jobs:
18
+ linters:
19
+ name: Run linters
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - name: Checkout repository
23
+ uses: actions/checkout@v5
24
+ with:
25
+ fetch-depth: 0
26
+
27
+ - name: Install Python
28
+ uses: actions/setup-python@v6
29
+ with:
30
+ python-version: "3.13"
31
+
32
+ - name: Install uv
33
+ run: |
34
+ python -m pip install -U uv
35
+
36
+ - name: Install dependencies
37
+ run: |
38
+ python -m uv sync --all-groups --all-extras
39
+
40
+ - name: Run linters
41
+ run: |
42
+ python -m uv run poe lint
@@ -0,0 +1,46 @@
1
+ # Requires GitHub secrets
2
+ # - GH_TOKEN
3
+ # - PYPI_TOKEN
4
+
5
+ name: Release
6
+
7
+ on:
8
+ push:
9
+ branches: ["main"]
10
+
11
+ jobs:
12
+ release:
13
+ name: Release
14
+ runs-on: ubuntu-latest
15
+ concurrency: release
16
+ permissions:
17
+ id-token: write
18
+ contents: write
19
+ steps:
20
+ - name: Checkout repository
21
+ uses: actions/checkout@v5
22
+ with:
23
+ fetch-depth: 0
24
+
25
+ - name: Install Python
26
+ uses: actions/setup-python@v6
27
+ with:
28
+ python-version: "3.13"
29
+ architecture: x64
30
+
31
+ - name: Install dependencies
32
+ run: |
33
+ python -m pip install -U uv twine
34
+ python -m uv sync
35
+
36
+ - name: Semantic release
37
+ uses: python-semantic-release/python-semantic-release@v10.4.1
38
+ with:
39
+ github_token: ${{ secrets.GH_TOKEN }}
40
+
41
+ - name: Build package
42
+ run: python -m uv build
43
+
44
+ - name: Publish package
45
+ run: |
46
+ python -m uv run twine upload dist/* -u __token__ -p ${{ secrets.PYPI_TOKEN }} --skip-existing --verbose
@@ -0,0 +1,54 @@
1
+ # Requires GitHub secrets
2
+ # - CODECOV_TOKEN
3
+
4
+ name: Tests
5
+
6
+ on:
7
+ pull_request:
8
+ branches: ["main"]
9
+ push:
10
+ branches: ["main"]
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
14
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
15
+
16
+ defaults:
17
+ run:
18
+ shell: bash
19
+
20
+ jobs:
21
+ tests-matrix:
22
+ name: OS ${{ matrix.os.name }} / Python ${{ matrix.python-version }}
23
+ runs-on: ${{ matrix.os.image }}
24
+ strategy:
25
+ matrix:
26
+ os:
27
+ - name: Ubuntu
28
+ image: ubuntu-22.04
29
+ python-version: ["3.9", "3.13"]
30
+ fail-fast: false
31
+ steps:
32
+ - name: Checkout repository
33
+ uses: actions/checkout@v5
34
+ with:
35
+ fetch-depth: 0
36
+
37
+ - name: Install uv
38
+ run: |
39
+ python -m pip install -U uv
40
+
41
+ - name: Install dependencies
42
+ run: |
43
+ python -m uv sync --all-groups --all-extras
44
+
45
+ - name: Run tests
46
+ id: run-tests
47
+ run: |
48
+ python -m uv run pytest
49
+
50
+ - name: Upload coverage to Codecov
51
+ uses: codecov/codecov-action@v5
52
+ with:
53
+ token: ${{ secrets.CODECOV_TOKEN }}
54
+ name: OS ${{ matrix.os.name }} / Python ${{ matrix.python-version }}
@@ -0,0 +1,157 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ # pyenv
85
+ .python-version
86
+
87
+ # pipenv
88
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
90
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
91
+ # install all needed dependencies.
92
+ #Pipfile.lock
93
+
94
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95
+ __pypackages__/
96
+
97
+ # Celery stuff
98
+ celerybeat-schedule
99
+ celerybeat.pid
100
+
101
+ # SageMath parsed files
102
+ *.sage.py
103
+
104
+ # Environments
105
+ .env
106
+ *.env
107
+ .env.*
108
+ .venv
109
+ env/
110
+ venv/
111
+ ENV/
112
+ env.bak/
113
+ venv.bak/
114
+
115
+ # Spyder project settings
116
+ .spyderproject
117
+ .spyproject
118
+
119
+ # Rope project settings
120
+ .ropeproject
121
+
122
+ # mkdocs documentation
123
+ /site
124
+
125
+ # mypy
126
+ .mypy_cache/
127
+ .dmypy.json
128
+ dmypy.json
129
+
130
+ # Pyre type checker
131
+ .pyre/
132
+
133
+ # IDEs
134
+ .idea
135
+ .vscode
136
+
137
+ # OS
138
+ .DS_Store
139
+
140
+ # tests
141
+ tests/fixtures
142
+
143
+ # temporary files
144
+ tmp
145
+ temp
146
+
147
+ # ruff
148
+ .ruff_cache
149
+
150
+ # import linter
151
+ .import_linter_cache
152
+
153
+ # examples
154
+ !docs/examples/.env
155
+ !docs/examples/.env.dev
156
+ !docs/examples/.env.prod
157
+ docs/examples/pyproject.toml
@@ -0,0 +1,44 @@
1
+ # CHANGELOG
2
+
3
+ <!-- version list -->
4
+
5
+ ## v1.1.2 (2025-10-11)
6
+
7
+ ### Documentation
8
+
9
+ - Update notes
10
+ ([`238ee5c`](https://github.com/pivoshenko/uv-upsync/commit/238ee5c765910c4c9dc272bee926420032b94c99))
11
+
12
+
13
+ ## v1.1.1 (2025-10-11)
14
+
15
+ ### Chores
16
+
17
+ - Update pyproject.toml with metadata, keywords, and classifiers
18
+ ([`4be0660`](https://github.com/pivoshenko/uv-upsync/commit/4be0660bc99e09b52e4f46429a2da4943462bc03))
19
+
20
+ ### Documentation
21
+
22
+ - Remove TOC
23
+ ([`d0fd385`](https://github.com/pivoshenko/uv-upsync/commit/d0fd385e550701a35b2ac155cf83c99f5476957c))
24
+
25
+ - Update notes
26
+ ([`ca6fd27`](https://github.com/pivoshenko/uv-upsync/commit/ca6fd27e384bad381750d0c98f5e6fd628d81732))
27
+
28
+
29
+ ## v1.1.0 (2025-10-11)
30
+
31
+ ### Bug Fixes
32
+
33
+ - Enhance help text for package exclusion option to indicate multiple values are allowed
34
+ ([`0c0459f`](https://github.com/pivoshenko/uv-upsync/commit/0c0459f7b988434e83ee52c322b626df584b9fca))
35
+
36
+ ### Chores
37
+
38
+ - Update Coverage config
39
+ ([`ff07da6`](https://github.com/pivoshenko/uv-upsync/commit/ff07da604b7ab71f2d1e34e27500b98b5d390723))
40
+
41
+
42
+ ## v1.0.0 (2025-10-11)
43
+
44
+ - Initial Release