-
Notifications
You must be signed in to change notification settings - Fork 17
REFACTOR: gRPC cutout refactoring #1463
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this 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 refactors the gRPC cutout functionality by moving the complex cutout implementation from the main EDB class to dedicated modules for better organization and maintainability. The refactoring introduces a new streamlined cutout API while maintaining backward compatibility through deprecation warnings.
- Moved core cutout logic from
src/pyedb/grpc/edb.py
to a new utility modulesrc/pyedb/grpc/database/utility/cutout.py
- Added a new simplified cutout method in the modeler class with improved parameter naming and documentation
- Updated test cases to use the new parameter names and API structure
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
File | Description |
---|---|
tests/system/test_cutout.py | Updated test cases to use new parameter names and commented out some assertions |
src/pyedb/grpc/edb.py | Replaced complex cutout implementation with a simple wrapper that delegates to modeler.cutout |
src/pyedb/grpc/database/utility/cutout.py | New module containing the refactored cutout implementation with improved algorithms |
src/pyedb/grpc/database/primitive/polygon.py | Minor fix to polygon void creation to preserve net information |
src/pyedb/grpc/database/primitive/padstack_instance.py | Improved padstack instance intersection checking with performance optimization |
src/pyedb/grpc/database/modeler.py | Added new cutout method with modern API and comprehensive parameter validation |
src/pyedb/grpc/database/components.py | Enhanced error handling in component deletion method |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1463 +/- ##
===========================================
- Coverage 72.83% 49.76% -23.08%
===========================================
Files 255 256 +1
Lines 38154 37859 -295
===========================================
- Hits 27788 18839 -8949
- Misses 10366 19020 +8654 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LTGM. However, GPRC is not tested.
# Conflicts: # src/pyedb/grpc/database/primitive/polygon.py
There was a problem hiding this 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 refactors the gRPC cutout functionality in PyEDB to improve performance and maintainability. The refactoring removes legacy cutout implementation and introduces a new streamlined cutout system.
Key changes:
- Removes over 1000 lines of legacy cutout code from the main
Edb
class - Introduces new modular cutout implementation with optimized algorithms
- Updates test parameters to use new string-based extent types and expansion units
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
tests/system/test_cutout.py | Updates test cases to use new string-based extent types and unit specifications |
src/pyedb/grpc/edb.py | Replaces legacy cutout implementation with simplified deprecated wrapper |
src/pyedb/grpc/database/utility/cutout.py | New cutout utility module with optimized algorithms and vectorized operations |
src/pyedb/grpc/database/primitive/polygon.py | Updates polygon void addition method to include net_name parameter |
src/pyedb/grpc/database/primitive/padstack_instance.py | Optimizes padstack intersection checking with arbitrary extent values |
src/pyedb/grpc/database/modeler.py | Adds new cutout method to modeler with comprehensive parameter validation |
src/pyedb/grpc/database/components.py | Improves component deletion logic with better attribute checking |
src/pyedb/dotnet/edb.py | Adds value conversion for expansion_factor parameter |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
No description provided.