Skip to content

feat: rewrite for version 3.0#10

Merged
StevanFreeborn merged 6 commits into
masterfrom
stevanfreeborn/feat/rewrite
Jun 26, 2026
Merged

feat: rewrite for version 3.0#10
StevanFreeborn merged 6 commits into
masterfrom
stevanfreeborn/feat/rewrite

Conversation

@StevanFreeborn

Copy link
Copy Markdown
Owner

closes #9
closes #5
closes #4

  • chore: migrate build system from setuptools to hatchling
  • feat: rewrite SDK from camelCase/requests to snake_case/httpx/Pydantic v2
  • test: add unit and integration test suite for the new SDK
  • ci: add GitHub Actions workflows for PR checks and PyPI publishing
  • docs: update README with new SDK API documentation
  • chore: add cSpell configuration for custom words in VSCode settings

- Replace setup.cfg with pyproject.toml using hatchling build backend
- Switch from requests to httpx + pydantic v2 dependencies
- Add uv.lock for deterministic dependency resolution
- Add pytest + ruff dev dependencies with configurations
- Update .gitignore for .ruff_cache/
- Bump LICENSE year to 2026
…c v2

- Replace OnspringApiSdk package with onspring_api_sdk package
- Add sync (OnspringClient) and async (AsyncOnspringClient) clients
- Migrate from requests to httpx for HTTP transport
- Migrate from raw dataclasses to Pydantic v2 models with alias support
- Add shared response handler module (_responses.py) to reduce duplication
- Add typed exceptions (OnspringError, OnspringAuthenticationError, etc.)
- Preserve full API coverage for apps, fields, files, lists, records, and reports
- 268 unit tests covering all sync and async client methods
- 196 integration tests against a real sandbox API
- Mock-based tests using respx for sync and async HTTP mocking
- Paging, error handling, and edge case coverage (400/401/403/404/500/418)
- Integration test utilities and test data files
- .env.example with sandbox environment variables
- pull_request.yml: lint (ruff) + test on PRs to master
- publish.yml: build and publish to PyPI on pushes to master
  (uses Trusted Publishing via PyPI publisher)
- Rewrite all code examples for snake_case/Pydantic v2 API
- Add AsyncOnspringClient documentation with async/await examples
- Add error handling documentation with raise_for_status() examples
- Update property names (statusCode -> status_code, etc.)
- Update import paths (OnspringApiSdk -> onspring_api_sdk)
- Update constructor parameter names (baseUrl -> url, apiKey -> key)
- Add httpx as the underlying HTTP library
@StevanFreeborn StevanFreeborn merged commit 29aa1fc into master Jun 26, 2026
5 checks passed
@StevanFreeborn StevanFreeborn deleted the stevanfreeborn/feat/rewrite branch June 26, 2026 22:47
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.

[FEAT]: Rewrite for 3.0 release [CHORE]: Automate Releases [TESTS]: Add test coverage for all OnspringClient methods

1 participant