Stevan Freeborn
208ad9114b
ci: add GitHub Actions workflows for PR checks and PyPI publishing
...
- 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)
2026-06-26 17:43:19 -05:00
Stevan Freeborn
6774f42c2f
test: add unit and integration test suite for the new SDK
...
- 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
2026-06-26 17:43:08 -05:00
Stevan Freeborn
b976959c30
feat: rewrite SDK from camelCase/requests to snake_case/httpx/Pydantic 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
2026-06-26 17:42:56 -05:00
Stevan Freeborn
bc0aa9296b
chore: migrate build system from setuptools to hatchling
...
- 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
2026-06-26 17:42:36 -05:00
Stevan Freeborn
2e4c1eb560
docs: update save file example
2024-12-19 10:48:25 -06:00
Stevan Freeborn
2a79d3e172
chore: update year in license
2024-12-18 18:01:34 -06:00
Stevan Freeborn
fb183839b8
chore: bump version
2024-12-18 18:00:50 -06:00
Stevan Freeborn
df795316e6
Merge pull request #7 from StevanFreeborn/stevanfreeborn/fix/stop-mutating-client-headers
...
fix: stop mutating client headers
2024-12-18 18:00:01 -06:00
Stevan Freeborn
ce787860f4
fix: use a copy of the client headers when setting content-type on specific method calls
2024-12-18 17:58:11 -06:00
Stevan Freeborn
627d21154f
chore: fix setup.cfg
2.0.1
2024-01-23 17:02:46 -06:00
Stevan Freeborn
c68afc962e
chore: bump version
2024-01-23 16:35:38 -06:00
Stevan Freeborn
881ef27d04
Merge pull request #3 from StevanFreeborn/stevanfreeborn/fix/address-list-values-not-being-included-in-some-field-responses
...
fix: address list values not being included in some field responses
2024-01-23 16:31:48 -06:00
Stevan Freeborn
2c736be81a
chore: small formatting fix
2024-01-23 16:25:23 -06:00
Stevan Freeborn
355e19708a
fix: correct listValues possibly being unbound
2024-01-23 16:24:44 -06:00
Stevan Freeborn
b168b599dc
fix: update GetFieldsByAppId method to return properly structured fields if field is list or formula type
2024-01-23 16:12:37 -06:00
Stevan Freeborn
8135ccaf5d
tests: add failing test for GetFieldsByAppId
2024-01-23 16:11:49 -06:00
Stevan Freeborn
8f035f7308
tests: add additional assertions to test
2024-01-23 16:01:08 -06:00
Stevan Freeborn
f343de2b62
tests: add failing test for GetFieldsByIds
2024-01-23 15:50:15 -06:00
Stevan Freeborn
90eb252ae6
fix: updated version number and minimum required version of python
2024-01-23 14:30:44 -06:00
Stevan Freeborn
1656e01fc4
fix: updated version number and minimum required version of python
2.0.0
2023-01-25 11:35:25 -06:00
Stevan Freeborn
d999f22bba
Merge pull request #1 from StevanFreeborn/fix/missing-type-hints
...
Fix: Added Missing Type Hints
2023-01-25 11:31:31 -06:00
Stevan Freeborn
533b8b7959
fix: added missing type hints
2023-01-25 11:29:44 -06:00
StevanFreeborn
452718b034
Update README.md
2022-08-05 11:46:44 -05:00
StevanFreeborn
e21a798dca
update README.md
2022-05-04 11:58:16 -05:00
StevanFreeborn
f58b6e73bf
update
2022-05-04 10:47:18 -05:00
StevanFreeborn
a08ad553af
update readme
2022-05-04 10:39:17 -05:00
StevanFreeborn
6f9d773ee0
'updates'
2022-05-04 10:32:43 -05:00
StevanFreeborn
7c791f8526
update README.md
2022-05-04 09:08:35 -05:00
StevanFreeborn
360fce2152
update README.md
2022-05-04 09:07:21 -05:00
StevanFreeborn
d8e0f2eddc
update README.md
2022-05-03 16:51:02 -05:00
StevanFreeborn
1b07943c80
update README.md
2022-05-03 16:50:18 -05:00
StevanFreeborn
43b0ffc3e0
update README.md
2022-05-03 15:36:17 -05:00
StevanFreeborn
62e27bd8a2
update README.md
2022-05-03 15:33:58 -05:00
StevanFreeborn
3492ded237
update README.md
2022-05-03 15:30:00 -05:00
StevanFreeborn
671c66afa3
update README.md
2022-05-03 15:14:11 -05:00
StevanFreeborn
429cfb9c60
update README.md
2022-05-03 15:09:55 -05:00
StevanFreeborn
0c317b0aab
update README.md
2022-05-03 15:08:22 -05:00
StevanFreeborn
c4e4ba3196
update README.md
2022-05-03 15:07:38 -05:00
StevanFreeborn
262fdf88d1
update README.md
2022-05-03 14:58:08 -05:00
StevanFreeborn
3ebab736f3
update README.md
2022-05-03 14:18:15 -05:00
StevanFreeborn
584dc5b3a6
update README.md
2022-05-03 13:54:31 -05:00
StevanFreeborn
1dca824ac2
update README.md
2022-05-03 13:40:07 -05:00
StevanFreeborn
d952113e35
update README.md
2022-05-03 13:37:23 -05:00
StevanFreeborn
d6d44b2671
update README.md
2022-05-03 13:06:12 -05:00
StevanFreeborn
d4f0db34ef
update README.md
2022-05-03 13:02:30 -05:00
StevanFreeborn
9554521985
update README.md
2022-05-03 12:59:10 -05:00
StevanFreeborn
38f958816e
update README.md
2022-05-03 12:57:57 -05:00
StevanFreeborn
a3520a742a
update README.md
2022-05-03 12:54:32 -05:00
StevanFreeborn
4d556eb898
update README.md
2022-05-03 12:40:57 -05:00
StevanFreeborn
5ed1c012fc
update README.md
2022-05-03 11:54:23 -05:00