Skip to content

Fix/bugfixes slice table protection and state - #185

Merged
Zncl2222 merged 12 commits into
mainfrom
fix/bugfixes-slice-table-protection-and-state
Jul 16, 2026
Merged

Fix/bugfixes slice table protection and state#185
Zncl2222 merged 12 commits into
mainfrom
fix/bugfixes-slice-table-protection-and-state

Conversation

@Zncl2222

Copy link
Copy Markdown
Owner

No description provided.

Zncl2222 added 6 commits June 12, 2026 23:39
- Fix type hint typo 'NotmalWriter' -> 'NormalWriter' (worksheet.py)
- Fix _set_cell_by_slice using start_row instead of loop variable row (worksheet.py:340)
- Fix Workbook.create_table using self.sheet instead of sheet param (workbook.py:416)
- Fix protection unpacking using self.protection instead of self.protection_params (style.py)
- Add protection_params handling in CustomStyle.set_custom_style (style.py)
- Wrap read_lib_and_create_excel in try/finally to ensure StyleManager state reset (driver.py)
- Add comprehensive scenario tests for all 5 fixes (tests/bugfixes_test.py)
- Replace Pipfile/Pipfile.lock with pyproject.toml and uv.lock
- Remove setup.py and setup.cfg (metadata now in pyproject.toml)
- Remove requirements-dev.txt (dependencies now in pyproject.toml)
- Update Makefile to use uv commands (uv run, uv sync, uv build)
- Add ruff configuration in pyproject.toml
- Add dependency-groups for dev and docs
- Add new ci.yml workflow (test, docs, build-package jobs)
- Update python.yml: pip -> uv, add Python 3.12/3.13/3.14
- Update pypi.yml: add Python 3.12/3.13/3.14 to test matrix
- Update codeql.yml: pip -> uv
- Python 3.14 marked as experimental with allow-prereleases
- Fix spacing in expressions (i+1 -> i + 1)
- Merge split string literals
- Prefix unused variable with underscore
@codacy-production

codacy-production Bot commented Jun 13, 2026

Copy link
Copy Markdown

Not up to standards ⛔

🔴 Issues 1 minor

Alerts:
⚠ 1 issue (≤ 0 issues of at least minor severity)

Results:
1 new issue

Category Results
Documentation 1 minor

View in Codacy

🟢 Metrics 31 complexity · 0 duplication

Metric Results
Complexity 31
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@codecov-commenter

codecov-commenter commented Jun 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 72.41379% with 16 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.30%. Comparing base (ae79d76) to head (854e92e).

Files with missing lines Patch % Lines
pyfastexcel/core/style.go 72.41% 15 Missing and 1 partial ⚠️

❗ There is a different number of reports uploaded between BASE (ae79d76) and HEAD (854e92e). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (ae79d76) HEAD (854e92e)
2 1
Additional details and impacted files
@@             Coverage Diff             @@
##             main     #185       +/-   ##
===========================================
- Coverage   96.30%   86.30%   -10.00%     
===========================================
  Files          30        8       -22     
  Lines        3138      847     -2291     
===========================================
- Hits         3022      731     -2291     
+ Misses         77       76        -1     
- Partials       39       40        +1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Zncl2222 and others added 6 commits June 13, 2026 11:49
- Move _read_lib and _create_style into try block so StyleManager
  cleanup in finally always runs on failure
- Migrate pypi workflow from setup.py bdist_wheel to python -m build
- Add test for StyleManager reset after style serialization failure
- Regenerate docs/requirements.txt with 'uv pip compile --upgrade'
  to fix MkDocs build compatibility (pygments/pymdown-extensions)
- Upgrade golang.org/x/crypto v0.28.0 -> v0.45.0
- Upgrade golang.org/x/net v0.30.0 -> v0.47.0
- Upgrade golang.org/x/text v0.19.0 -> v0.31.0
- Keep go 1.24 (within Go 1.24 toolchain)
- Fix pre-commit config stages and benchmark code style
- examples/full_examples.py: replace random with secrets for demo data
- pyfastexcel/core/style.go: extract setMappedValue to reduce CCN; use FieldByNameFunc to avoid unsafe-reflection rule
- go.mod: upgrade Go directive from 1.24.0 to 1.25.11 to fix stdlib CVEs

Verified locally:
- opengrep: 0 findings
- lizard: 0 warnings (CCN<=20)
- go test: pass
- pytest: 353 passed
- trivy: Go stdlib CVEs resolved
go.mod requires go >= 1.25.11 (bumped to fix Go stdlib CVEs), but Go 1.25
has no official bullseye image and Go 1.24 is EOL. Install the Go 1.25.12
toolchain from the official tarball (with SHA256 verification) on top of
debian:bullseye to keep GLIBC 2.31 compatibility for the shared library.

Also bump setup-go to 1.25 in the Windows/macOS build and in go.yml/ci.yml.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- go.mod: bump golang.org/x/net 0.47.0 -> 0.55.0 (+crypto/text via
  go mod tidy), resolving 4 x/net CVEs
- Drop Python 3.8/3.9 support (both EOL) so uv can resolve the
  CVE-fixed dependency versions, all of which require Python >=3.10:
  requires-python >=3.10, ruff target py310, updated classifiers and
  removed the eval-type-backport<3.9 runtime dep
- Update CI matrices (ci/pypi/python workflows) to 3.10-3.14
- uv.lock: relock; every flagged package now resolves to a single
  CVE-fixed version (pillow, urllib3, pip, setuptools, wheel, requests,
  pytest, markdown, fonttools, pygments, pymdown-extensions, filelock)
- benchmark/perf_compare.py: fix docstrings (D205/D212/D415) and drop
  unused _raw assignment (F841)
- tests/workbook_test.py: fix trailing-comma typo in parametrize
  argnames ('selection,' -> 'selection') that pytest 9 rejects

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EeLqcog1i8f1wFvMwL4Px2
- benchmark/perf_compare.py: move docstring summaries to the second
  line (D213 — Codacy's pydocstyle convention now expects this, the
  opposite of the earlier D212 report)
- Drop the second unused _raw assignment in the raw-bytes API branch
  (F841); the string_at call is kept for timing

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EeLqcog1i8f1wFvMwL4Px2
@Zncl2222
Zncl2222 merged commit 82a9d49 into main Jul 16, 2026
36 of 37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants