Skip to content

Conversation

jdrhyne
Copy link
Collaborator

@jdrhyne jdrhyne commented Jun 20, 2025

  • Add PyPI version, Python versions, and downloads badges
  • Update coverage badge from 92% to 94%
  • Create comprehensive CHANGELOG.md with v1.0.0 and v1.0.1 releases
  • Add changelog section to README
  • Update GitHub URLs to PSPDFKit organization

jdrhyne added 3 commits June 20, 2025 15:38
- Add PyPI version, Python versions, and downloads badges
- Update coverage badge from 92% to 94%
- Create comprehensive CHANGELOG.md with v1.0.0 and v1.0.1 releases
- Add changelog section to README
- Update GitHub URLs to PSPDFKit organization
- Fix git clone URL in README.md
- Fix issues URL in README.md
- Fix homepage, repository, and bug tracker URLs in pyproject.toml

This ensures all links point to the correct PSPDFKit organization.
- Add quotes to BinaryIO type expressions (TC006)
- Fix line length error by splitting long assertion (E501)
- Remove unused variable original_name (F841)

All ruff checks now pass.
@jdrhyne jdrhyne merged commit 571f638 into main Jun 20, 2025
6 of 11 checks passed
jdrhyne added a commit that referenced this pull request Jun 21, 2025
* docs: add official OpenAPI specification v1.9.0

This specification serves as the authoritative reference for:
- Build API structure and patterns
- Available BuildAction types and parameters
- Part types (FilePart, HTMLPart, NewPagePart, DocumentPart)
- Output format options (PDF, PDF/A, images, Office, JSON)
- Error response schemas
- Authentication methods

Will be used to ensure our implementation follows the official API design.

* docs: add comprehensive OpenAPI compliance review

This review analyzes our current Direct API implementation against the
official OpenAPI specification v1.9.0 and identifies:

- Current methods that align well with the spec
- Parameter mapping discrepancies
- Missing capabilities we could implement
- Recommendations for improved compliance

Key findings:
- Implementation correctly uses Build API pattern
- Tool name mapping layer handles most conversions correctly
- Foundation is solid, minor parameter alignment needed
- Opportunities for enhanced functionality

* docs: comprehensive implementation analysis against OpenAPI spec

This analysis confirms our implementation is highly compliant with the
official OpenAPI specification v1.9.0:

✅ 95/100 compliance score
✅ Correct Build API pattern usage
✅ Perfect parameter mapping (degrees→rotateBy, etc.)
✅ Proper tool name translation
✅ Sound architecture and error handling

Key findings:
- All current Direct API methods are OpenAPI compliant
- Integration branch adds 5 more compliant methods
- Implementation demonstrates deep understanding of API patterns
- No breaking changes needed - production ready

Recommends merging integration branch for most comprehensive
OpenAPI-compliant implementation.

* docs: comprehensive future enhancement plan with GitHub issue templates

Created detailed enhancement roadmap based on OpenAPI v1.9.0 analysis:

📋 Enhancement Plan:
- 13 proposed enhancements across 4 priority levels
- Detailed implementation specifications
- Testing requirements and use cases
- Recommended 4-phase implementation timeline

📁 GitHub Issue Templates:
- Individual issue template for each enhancement
- Consistent format with implementation details
- OpenAPI references and code examples
- Priority levels and labels

🎯 Goals:
- Increase API coverage from ~30% to ~80%
- Maintain backward compatibility
- Add most requested features
- Follow OpenAPI specification precisely

This provides a clear roadmap for community contributions and
systematic feature development.

* docs: add missing GitHub issue templates and reorder

Added three missing enhancement issue templates:
- #6 Extract Pages method (simpler alternative to split_pdf)
- #10 Convert to Office Formats (DOCX, XLSX, PPTX export)
- #13 Batch Processing (client-side bulk operations)

Reordered existing templates to maintain logical sequence.
All 13 enhancements now have corresponding issue templates.

* docs: add manual GitHub issue creation guide

- Created comprehensive guide for manual issue creation
- Includes web interface and CLI options
- Documents all 14 enhancement issues with priority levels
- Provides implementation phase timeline

* docs: add GitHub token configuration and debugging scripts

- Add comprehensive documentation for fixing GitHub token permissions
- Add diagnostic scripts for troubleshooting token authentication issues
- Add scripts to verify token scopes, SSO status, and PAT restrictions
- Add setup script for configuring GitHub tokens for issue creation
- Document the resolution process for authentication failures

* fix: format test files with ruff

- Fixed formatting in tests/unit/test_builder.py
- Fixed formatting in tests/unit/test_direct_api.py
- Fixed formatting in tests/unit/test_http_client.py

Resolves CI formatting check failures.

* fix: add quotes to type expressions in cast() calls

- Fixed TC006 ruff linting errors in tests/unit/test_direct_api.py
- Added quotes around BinaryIO type expressions as required by ruff TC006 rule

Resolves CI linting failures.
jdrhyne added a commit that referenced this pull request Jun 22, 2025
#7)

* docs: comprehensive future enhancement plan with GitHub issue templates

Created detailed enhancement roadmap based on OpenAPI v1.9.0 analysis:

📋 Enhancement Plan:
- 13 proposed enhancements across 4 priority levels
- Detailed implementation specifications
- Testing requirements and use cases
- Recommended 4-phase implementation timeline

📁 GitHub Issue Templates:
- Individual issue template for each enhancement
- Consistent format with implementation details
- OpenAPI references and code examples
- Priority levels and labels

🎯 Goals:
- Increase API coverage from ~30% to ~80%
- Maintain backward compatibility
- Add most requested features
- Follow OpenAPI specification precisely

This provides a clear roadmap for community contributions and
systematic feature development.

* docs: add missing GitHub issue templates and reorder

Added three missing enhancement issue templates:
- #6 Extract Pages method (simpler alternative to split_pdf)
- #10 Convert to Office Formats (DOCX, XLSX, PPTX export)
- #13 Batch Processing (client-side bulk operations)

Reordered existing templates to maintain logical sequence.
All 13 enhancements now have corresponding issue templates.

* feat: integrate fork features with comprehensive Direct API methods and tests

## New Direct API Methods (Python 3.8 compatible)
- `split_pdf()` - Split PDFs into multiple documents by page ranges
- `duplicate_pdf_pages()` - Duplicate specific pages within a PDF
- `delete_pdf_pages()` - Remove specific pages from a PDF
- `add_page()` - Insert blank pages into PDFs
- `set_page_label()` - Apply custom labels to page ranges

## Comprehensive Integration Test Suite
- Added complete integration tests for all existing methods
- Added comprehensive tests for all new methods
- Tests cover both bytes return and file output scenarios
- Proper error handling and edge case testing
- Python 3.8+ compatible type hints throughout

## Quality Assurance
- All methods maintain Python 3.8+ compatibility
- Full type checking with mypy
- Comprehensive linting with ruff
- Detailed docstrings with examples
- Consistent error handling patterns

This integration successfully adopts the excellent fork functionality
while maintaining our quality standards and compatibility requirements.

* fix: format integration test file with ruff

- Fixed formatting in tests/integration/test_direct_api_integration.py
- Maintains consistency with project formatting standards
- All 154 unit tests pass after rebase on main

Resolves formatting issues after rebasing on latest main branch.

* fix: address critical issues in new Direct API methods

Critical Fixes:
- Fixed duplicate_pdf_pages page indexing bug (exclusive end for positive indexes)
- Fixed split_pdf to require page_ranges parameter (removed misleading default)
- Added resource limits: max 50 ranges for split_pdf, max 100 pages for add_page

Documentation Improvements:
- Clarified 0-based indexing in all method docstrings
- Added explicit examples showing index behavior
- Documented that negative indexes are NOT supported in delete_pdf_pages
- Updated split_pdf examples to show required page_ranges

Test Updates:
- Updated split_pdf tests to match new required parameter behavior
- Added test for maximum page ranges validation
- Added test for maximum page count in add_page
- Removed test for non-existent default behavior

These fixes ensure the API works correctly with the Nutrient DWS backend
and prevents common user errors through clear documentation and validation.

* fix: resolve linting issues in Direct API methods

- Fixed trailing whitespace in docstrings
- Fixed blank lines containing whitespace
- Fixed line length exceeding 100 characters
- All ruff checks now passing

This should resolve CI failures.

* fix: apply ruff formatting to direct.py
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.

1 participant