pydantic-fixedwidth 0.2.0__tar.gz → 0.2.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 (25) hide show
  1. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.devcontainer/devcontainer.json +1 -1
  2. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.github/workflows/ci.yaml +11 -16
  3. pydantic_fixedwidth-0.2.2/.github/workflows/prepare-release.yaml +51 -0
  4. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.github/workflows/release.yaml +24 -18
  5. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/Makefile +2 -2
  6. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/PKG-INFO +2 -11
  7. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/README.md +1 -2
  8. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/pyproject.toml +8 -13
  9. pydantic_fixedwidth-0.2.2/uv.lock +552 -0
  10. pydantic_fixedwidth-0.2.0/uv.lock +0 -504
  11. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.devcontainer/onCreateCommand.sh +0 -0
  12. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.editorconfig +0 -0
  13. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.gitattributes +0 -0
  14. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.github/dependabot.yaml +0 -0
  15. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.gitignore +0 -0
  16. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.pre-commit-config.yaml +0 -0
  17. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.python-version +0 -0
  18. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.vscode/extensions.json +0 -0
  19. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/.vscode/settings.json +0 -0
  20. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/LICENSE +0 -0
  21. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/pydantic_fixedwidth/__init__.py +0 -0
  22. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/pydantic_fixedwidth/fixedwidth.py +0 -0
  23. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/pydantic_fixedwidth/py.typed +0 -0
  24. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/tests/__init__.py +0 -0
  25. {pydantic_fixedwidth-0.2.0 → pydantic_fixedwidth-0.2.2}/tests/test_fixedwidth.py +0 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "lasuillard/pydantic-fixedwidth",
2
+ "name": "lasuillard-s/pydantic-fixedwidth",
3
3
  "image": "mcr.microsoft.com/devcontainers/base:1-bookworm",
4
4
  "features": {
5
5
  "ghcr.io/devcontainers-extra/features/pre-commit:2": {}
@@ -6,27 +6,24 @@ on:
6
6
  pull_request:
7
7
  branches: [main]
8
8
 
9
- permissions: read-all
10
-
11
9
  env:
12
10
  UV_FROZEN: 1
13
11
 
14
12
  jobs:
15
13
  lint:
16
- name: Lint
17
14
  runs-on: ubuntu-latest
15
+ timeout-minutes: 5
16
+ permissions:
17
+ contents: read
18
18
  steps:
19
- - name: Checkout
20
- uses: actions/checkout@v4
21
-
22
- - name: Set up uv
23
- uses: astral-sh/setup-uv@v6
19
+ - uses: actions/checkout@v5
20
+ - uses: astral-sh/setup-uv@v7
24
21
  with:
25
22
  version: latest
26
23
  enable-cache: true
27
24
 
28
25
  - name: Install deps
29
- run: uv sync --all-extras
26
+ run: uv sync
30
27
 
31
28
  - uses: pre-commit/action@v3.0.1
32
29
  env:
@@ -36,8 +33,9 @@ jobs:
36
33
  if: always()
37
34
 
38
35
  test:
39
- name: Test (Python ${{ matrix.python-version }})
36
+ name: test (py${{ matrix.python-version }})
40
37
  runs-on: ubuntu-latest
38
+ timeout-minutes: 5
41
39
  permissions:
42
40
  contents: read
43
41
  id-token: write
@@ -47,11 +45,8 @@ jobs:
47
45
  python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
48
46
 
49
47
  steps:
50
- - name: Checkout
51
- uses: actions/checkout@v4
52
-
53
- - name: Set up uv
54
- uses: astral-sh/setup-uv@v6
48
+ - uses: actions/checkout@v5
49
+ - uses: astral-sh/setup-uv@v7
55
50
  with:
56
51
  version: latest
57
52
  enable-cache: true
@@ -60,7 +55,7 @@ jobs:
60
55
  run: uv python pin "${{ matrix.python-version }}"
61
56
 
62
57
  - name: Install deps
63
- run: uv sync --all-extras
58
+ run: uv sync
64
59
 
65
60
  - name: Run tests
66
61
  run: uv run pytest
@@ -0,0 +1,51 @@
1
+ name: Prepare Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ tag:
7
+ description: Semver-style tag for release (e.g., v1.0.0)
8
+ required: true
9
+
10
+ jobs:
11
+ create-pr:
12
+ runs-on: ubuntu-latest
13
+ timeout-minutes: 5
14
+ permissions:
15
+ contents: write
16
+ pull-requests: write
17
+ steps:
18
+ - name: Check tag format
19
+ run: |
20
+ if [[ ! "${{ inputs.tag }}" =~ ^v ]]; then
21
+ echo "Tag must start with 'v'"
22
+ exit 1
23
+ fi
24
+
25
+ - uses: actions/checkout@v5
26
+ - uses: astral-sh/setup-uv@v7
27
+ with:
28
+ version: latest
29
+ enable-cache: true
30
+
31
+ - name: Set version
32
+ run: |
33
+ tag="${{ inputs.tag }}"
34
+ tag_no_v="${tag#v}"
35
+ uv version "${tag#v}"
36
+
37
+ - name: Generate GitHub App token
38
+ uses: actions/create-github-app-token@v2
39
+ id: generate-token
40
+ with:
41
+ app-id: ${{ vars.GH_APP_ID }}
42
+ private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
43
+
44
+ - name: Create pull request
45
+ uses: peter-evans/create-pull-request@v7.0.8
46
+ with:
47
+ token: ${{ steps.generate-token.outputs.token }}
48
+ sign-commits: true
49
+ title: Release ${{ inputs.tag }}
50
+ branch: release/${{ inputs.tag }}
51
+ delete-branch: true
@@ -1,59 +1,65 @@
1
1
  name: Release
2
2
 
3
3
  on:
4
- push:
5
- tags: [v*]
4
+ release:
5
+ types: [published]
6
6
 
7
- permissions: read-all
7
+ env:
8
+ UV_FROZEN: 1
8
9
 
9
10
  jobs:
10
11
  release:
11
- name: Release
12
12
  runs-on: ubuntu-latest
13
+ timeout-minutes: 5
13
14
  permissions:
14
15
  contents: write
15
16
  steps:
16
- - name: Checkout
17
- uses: actions/checkout@v4
18
-
19
- - name: Set up uv
20
- uses: astral-sh/setup-uv@v6
17
+ - uses: actions/checkout@v5
18
+ - uses: astral-sh/setup-uv@v7
21
19
  with:
22
20
  version: latest
23
21
  enable-cache: true
24
22
 
25
23
  - name: Install deps
26
- run: uv sync --frozen --all-extras
24
+ run: uv sync --frozen
27
25
 
28
26
  - name: Build package
29
27
  run: uv build
30
28
 
31
29
  - name: Create release
32
- uses: softprops/action-gh-release@v2
30
+ uses: softprops/action-gh-release@v2.4.1
33
31
  with:
32
+ tag_name: ${{ github.event.release.tag_name }}
34
33
  generate_release_notes: true
35
34
  files: dist/*
36
35
 
36
+ - name: Show files
37
+ run: ls -l --all --recursive dist
38
+
37
39
  - name: Upload release distributions
38
- uses: actions/upload-artifact@v4
40
+ uses: actions/upload-artifact@v5
39
41
  with:
40
42
  name: release-dists
41
43
  path: dist/
42
44
 
43
45
  publish-pypi:
44
- name: Publish to PyPI
46
+ needs: release
45
47
  runs-on: ubuntu-latest
46
- needs:
47
- - release
48
+ environment: pypi
49
+ timeout-minutes: 5
48
50
  permissions:
49
51
  id-token: write
50
- environment: pypi
51
52
  steps:
52
- - name: Retrieve release distributions
53
- uses: actions/download-artifact@v4
53
+ - name: Download release distributions
54
+ uses: actions/download-artifact@v6
54
55
  with:
55
56
  name: release-dists
56
57
  path: dist/
57
58
 
59
+ - name: Show artifacts
60
+ run: ls -l --all --recursive dist
61
+
58
62
  - name: Publish release distributions to PyPI
59
63
  uses: pypa/gh-action-pypi-publish@release/v1
64
+ with:
65
+ skip-existing: true
@@ -19,12 +19,12 @@ help: Makefile ## Show help
19
19
  # =============================================================================
20
20
  install: ## Install deps
21
21
  uv python install
22
- uv sync --frozen --all-extras
22
+ uv sync --frozen
23
23
  pre-commit install --install-hooks
24
24
  .PHONY: install
25
25
 
26
26
  update: ## Update deps and tools
27
- uv sync --upgrade --all-extras
27
+ uv sync --upgrade
28
28
  pre-commit autoupdate
29
29
  .PHONY: update
30
30
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pydantic-fixedwidth
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Custom Pydantic models for parsing and serializing fixed-width format of data.
5
5
  Project-URL: Homepage, https://github.com/lasuillard/pydantic-fixedwidth
6
6
  Project-URL: Repository, https://github.com/lasuillard/pydantic-fixedwidth.git
@@ -9,21 +9,12 @@ License-Expression: MIT
9
9
  License-File: LICENSE
10
10
  Requires-Python: <4.0,>=3.9
11
11
  Requires-Dist: pydantic<3,>=2
12
- Provides-Extra: dev
13
- Requires-Dist: mypy~=1.11; extra == 'dev'
14
- Requires-Dist: ruff~=0.6; extra == 'dev'
15
- Provides-Extra: test
16
- Requires-Dist: coverage~=7.3; extra == 'test'
17
- Requires-Dist: pytest-cov<7,>=5; extra == 'test'
18
- Requires-Dist: pytest-sugar~=1.0; extra == 'test'
19
- Requires-Dist: pytest~=8.0; extra == 'test'
20
12
  Description-Content-Type: text/markdown
21
13
 
22
14
  # pydantic-fixedwidth
23
15
 
24
16
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
25
- [![CI](https://github.com/lasuillard/pydantic-fixedwidth/actions/workflows/ci.yaml/badge.svg)](https://github.com/lasuillard/pydantic-fixedwidth/actions/workflows/ci.yaml)
26
- [![codecov](https://codecov.io/gh/lasuillard/pydantic-fixedwidth/graph/badge.svg?token=R5pQWB43DP)](https://codecov.io/gh/lasuillard/pydantic-fixedwidth)
17
+ [![codecov](https://codecov.io/gh/lasuillard-s/pydantic-fixedwidth/graph/badge.svg?token=R5pQWB43DP)](https://codecov.io/gh/lasuillard-s/pydantic-fixedwidth)
27
18
  [![PyPI - Version](https://img.shields.io/pypi/v/pydantic-fixedwidth)](https://pypi.org/project/pydantic-fixedwidth/)
28
19
 
29
20
  Custom Pydantic models for serializing and deserializing fixed-width format data.
@@ -1,8 +1,7 @@
1
1
  # pydantic-fixedwidth
2
2
 
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
- [![CI](https://github.com/lasuillard/pydantic-fixedwidth/actions/workflows/ci.yaml/badge.svg)](https://github.com/lasuillard/pydantic-fixedwidth/actions/workflows/ci.yaml)
5
- [![codecov](https://codecov.io/gh/lasuillard/pydantic-fixedwidth/graph/badge.svg?token=R5pQWB43DP)](https://codecov.io/gh/lasuillard/pydantic-fixedwidth)
4
+ [![codecov](https://codecov.io/gh/lasuillard-s/pydantic-fixedwidth/graph/badge.svg?token=R5pQWB43DP)](https://codecov.io/gh/lasuillard-s/pydantic-fixedwidth)
6
5
  [![PyPI - Version](https://img.shields.io/pypi/v/pydantic-fixedwidth)](https://pypi.org/project/pydantic-fixedwidth/)
7
6
 
8
7
  Custom Pydantic models for serializing and deserializing fixed-width format data.
@@ -1,23 +1,15 @@
1
1
  [project]
2
2
  name = "pydantic-fixedwidth"
3
- version = "0.2.0"
3
+ version = "0.2.2"
4
4
  description = "Custom Pydantic models for parsing and serializing fixed-width format of data."
5
5
  readme = "README.md"
6
6
  license = "MIT"
7
7
  requires-python = ">=3.9, <4.0"
8
8
  dependencies = ["pydantic>=2,<3"]
9
9
 
10
- [project.optional-dependencies]
11
- dev = [
12
- "mypy~=1.11",
13
- "ruff~=0.6",
14
- ]
15
- test = [
16
- "coverage~=7.3",
17
- "pytest-cov>=5,<7",
18
- "pytest-sugar~=1.0",
19
- "pytest~=8.0",
20
- ]
10
+ [dependency-groups]
11
+ dev = ["mypy~=1.11", "ruff~=0.6"]
12
+ test = ["coverage~=7.3", "pytest-cov>=5,<7", "pytest-sugar~=1.0", "pytest~=8.0"]
21
13
 
22
14
  [project.urls]
23
15
  Homepage = "https://github.com/lasuillard/pydantic-fixedwidth"
@@ -28,6 +20,9 @@ Issues = "https://github.com/lasuillard/pydantic-fixedwidth/issues"
28
20
  requires = ["hatchling"]
29
21
  build-backend = "hatchling.build"
30
22
 
23
+ [tool.uv]
24
+ default-groups = ["dev", "test"]
25
+
31
26
  [tool.hatch.build.targets.wheel]
32
27
  packages = ["pydantic_fixedwidth"]
33
28
 
@@ -69,7 +64,7 @@ addopts = [
69
64
  "--cov-report=xml",
70
65
  "--show-capture=no",
71
66
  "--junitxml=junit.xml",
72
- "-rs"
67
+ "-rs",
73
68
  ]
74
69
  testpaths = ["tests"]
75
70