Skip to content

Conversation

@suyask-msft
Copy link
Collaborator

Major Changes:

  • Restructured SDK into modular architecture for better scalability and maintainability
  • Organized codebase into logical modules: core/, data/, utils/, models/, extensions/

SDK Structure Changes:

  • core/: Authentication, configuration, HTTP client, and error handling
  • data/: OData client, CRUD operations, SQL queries, and file uploads
  • utils/: Pandas adapter and utility functions
  • models/: Data models and type definitions (extensible)
  • extensions/: Optional features like CLI and async clients (extensible)

Test Organization:

  • Restructured tests into unit/, integration/, and fixtures/ folders
  • Added comprehensive test infrastructure with conftest.py and test_data.py
  • Organized unit tests by module: unit/core/, unit/data/, unit/utils/
  • All 25 existing tests pass in new structure

Examples Reorganization:

  • basic/: Getting started examples (quickstart.py)
  • advanced/: Complex scenarios (pandas_integration.py, file_upload.py)
  • integrations/: Microsoft service integrations (extensible)
  • utilities/: Helper scripts and tools (extensible)

Import Path Updates:

  • Updated all import paths to use new modular structure
  • Maintained clean API surface through init.py files
  • Client.py updated to import from new module locations

Benefits:

  • Improved code organization and separation of concerns
  • Faster CI/CD with targeted test execution
  • Better developer experience with logical code grouping
  • Scalable architecture ready for future SDK expansion
  • Team-friendly structure for collaborative development

Major Changes:
- Restructured SDK into modular architecture for better scalability and maintainability
- Organized codebase into logical modules: core/, data/, utils/, models/, extensions/

SDK Structure Changes:
- core/: Authentication, configuration, HTTP client, and error handling
- data/: OData client, CRUD operations, SQL queries, and file uploads
- utils/: Pandas adapter and utility functions
- models/: Data models and type definitions (extensible)
- extensions/: Optional features like CLI and async clients (extensible)

Test Organization:
- Restructured tests into unit/, integration/, and fixtures/ folders
- Added comprehensive test infrastructure with conftest.py and test_data.py
- Organized unit tests by module: unit/core/, unit/data/, unit/utils/
- All 25 existing tests pass in new structure

Examples Reorganization:
- basic/: Getting started examples (quickstart.py)
- advanced/: Complex scenarios (pandas_integration.py, file_upload.py)
- integrations/: Microsoft service integrations (extensible)
- utilities/: Helper scripts and tools (extensible)

Import Path Updates:
- Updated all import paths to use new modular structure
- Maintained clean API surface through __init__.py files
- Client.py updated to import from new module locations

Benefits:
- Improved code organization and separation of concerns
- Faster CI/CD with targeted test execution
- Better developer experience with logical code grouping
- Scalable architecture ready for future SDK expansion
- Team-friendly structure for collaborative development
Copilot AI review requested due to automatic review settings November 7, 2025 06:26
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR reorganizes the Dataverse SDK codebase into a modular structure by separating code into distinct packages (core, data, utils, models, extensions), updating all import paths accordingly, and adding comprehensive documentation and test infrastructure.

Key Changes:

  • Restructured package into core (auth, config, errors, http), data (odata, upload), utils (pandas_adapter), models, and extensions modules
  • Updated all import paths throughout tests, examples, and source code to reflect new module structure
  • Added init.py files with copyright headers and descriptive docstrings to all packages
  • Created new test infrastructure with conftest.py and test_data.py fixtures
  • Added comprehensive file upload example demonstrating both small and chunked uploads

Reviewed Changes

Copilot reviewed 28 out of 35 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/dataverse_sdk/core/* New core infrastructure module with auth, config, errors, error_codes, and http client
src/dataverse_sdk/data/* Separated OData client and file upload functionality
src/dataverse_sdk/utils/* Utils module with pandas adapter and updated imports
src/dataverse_sdk/models/* New models package (placeholder for future use)
src/dataverse_sdk/extensions/* New extensions package (placeholder for future use)
src/dataverse_sdk/client.py Updated imports to use new module structure
tests/* Added init.py files and updated import paths in all test files
tests/conftest.py New shared pytest fixtures for common test setup
tests/fixtures/test_data.py New shared test data and mock responses
examples/* Added init.py files, new file_upload.py example, and updated imports
examples/README.md New comprehensive examples documentation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Remove examples/integrations/ folder (was empty placeholder)
- Remove examples/utilities/ folder (was empty placeholder)
- Keep only examples/basic/ and examples/advanced/ with actual working examples
- Maintains cleaner structure focused on real functionality
@suyask-msft suyask-msft merged commit d07e52d into main Nov 7, 2025
5 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.

3 participants