Skip to content

Support Python 3.11–3.14, allow lxml 5/6, regenerate for BuildingSync 2.7.0 - #23

Open
kflemin wants to merge 1 commit into
developfrom
feat/python-3.11-lxml-6-bsync-2.7
Open

kflemin wants to merge 1 commit into
developfrom
feat/python-3.11-lxml-6-bsync-2.7

Conversation

@kflemin

@kflemin kflemin commented Nov 5, 2026

Copy link
Copy Markdown
  • Regenerated bsync.py from the BuildingSync v2.7.0 release XSD (52 elements added, none removed)
  • Require Python 3.11+ (3.11–3.14)
  • Allow lxml 5 and 6 (was limited to lxml 4, which has no wheels for Python 3.13+)
  • Moved package metadata to the PEP 621 [project] table (Poetry 2) and refreshed poetry.lock
  • CI:
    • test matrix on Python 3.11–3.14
    • generator checks for BuildingSync 2.3–2.7 and the schema develop-v2/develop-v3 branches
    • current action versions
  • Added Dependabot config for pip and GitHub Actions
  • Bumped black to 26.10.1
  • Bumped version to 0.4.0; updated README and CHANGELOG

🤖 Generated with Claude Code

… 2.7.0

- Regenerate bsync.py from the v2.7.0 release XSD (52 elements added,
  none removed)
- requires-python >=3.11; lxml >=5.0 (lxml 4 has no wheels past cp312)
- Move metadata to the PEP 621 [project] table (Poetry 2) and refresh
  poetry.lock
- CI: test matrix 3.11-3.14, generator checks for BuildingSync 2.3-2.7
  and the develop-v2/develop-v3 branches, current action versions
- Add Dependabot config; bump black to 26.10.1
- Bump version to 0.4.0 and update README/CHANGELOG

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kflemin
kflemin requested review from nllong and a balanced review from Copilot November 5, 2026 21:51

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The change makes valid audit-cycle indices raise a ValueError because BSElement lacks positiveInteger handling, which must be added before regenerating bsync.py.

1 open issue
What changed in this PR

This PR prepares bsyncpy 0.4.0 with BuildingSync 2.7.0 bindings and modernizes Python support, packaging, and maintenance automation.

Changes:

  • Regenerates schema bindings with condition fields, file attachments, federal identifiers, and life-cycle savings.
  • Requires Python 3.11+, allows lxml 5/6, and migrates metadata to PEP 621.
  • Expands CI coverage, adds Dependabot, and updates formatting tools and release documentation.
File Description
tests/​test_basic.py Updates the expected BuildingSync version to 2.7.0.
README.md Updates supported versions, examples, and generation instructions.
pyproject.toml Modernizes metadata and dependencies; bumps version to 0.4.0.
poetry.lock Refreshes dependency versions and lock format.
CHANGELOG.md Documents the 0.4.0 release changes.
bsyncpy/​bsync.py Regenerates bindings for BuildingSync 2.7.0.
.pre-commit-config.yaml Updates Black and removes the interpreter override.
.github/​workflows/​ci.yml Adds Python and schema matrices with generated-module smoke checks.
.github/​dependabot.yml Adds weekly grouped dependency and action updates.

Review effort: Balanced

Comment thread bsyncpy/bsync.py
class IndexYearOfAuditCycle(BSElement):
"""Index number of the year when the audit is conducted from the start of the audit cycle. 1 corresponds to auc:AuditCycleStartYear."""

element_type = "xs:positiveInteger"
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