-
Notifications
You must be signed in to change notification settings - Fork 244
Qiskit Metal v0.5: PySide6, Removing GDSPY to GDSTK, PYAEDT v1.0, and many more changes #1002
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
For ubuntu unit tests
Hoping this will resolve an issue with running tests and doc building
|
|
|
Thank you, @shanto268! The tests are running. This is a giant PR, so it would be good to have more eyes on it than just you and me. Has anyone else from your lab tried this? I think after merging this, we could bump the Qiskit Metal version from 0.1.5 to 0.2. I just want to make sure it runs. |
Not quite. The * is unrolling a pandas Series, which should contain the geometry objects directly, but one of the Series entries is itself a list. I figured it out though: the handling of geometry with interior holes was not ported to gdstk entirely correctly in The easiest fix I could think of is to return the first (and only) element of this list, ie The return statement in question is here (line 2339): If this works for everyone, someone with write access can make the change directly (@shanto268 ?). 3 characters doesn't seem worth it for a PR. |
I asked for clarification on the pyaedt side here: ansys/pyaedt#6704 |
|
I have submitted a new PR shanto268#7 to @shanto268 that applies our two remarks @SamWolski
|
GDSRenderer issues and workflows update
|
@shanto268 shanto268#8 fixes a last issue I have found in QGDSRenderer. It also fixes the tests. The Mac tests will be fixed in the next release of |
Missing tolerance parameter for `gdstk.FlexPath`
|
|
|
Great, thank you very much.Just checking in on what else we might have left before we feel ready to make the mergeSent from my iPhoneOn Oct 9, 2025, at 12:43 PM, PositroniumJS ***@***.***> wrote:PositroniumJS left a comment (qiskit-community/qiskit-metal#1002)
pyaedt has been updated, it can be imported again on Mac devices.
Hence, the last tests are fixed in shanto268#9.
@shanto268 @zlatko-minev
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: ***@***.***>
|
…rt of structures with large fillet Modify the fix commit fa54459
|
Cheesing appears to be broken when rendering to GDS. It can be bypassed as a workaround by selectively enabling/disabling the cheese and no-cheese layers: but then there is obviously no cheesing generated. I've also noticed that the cell and layer structure of the generated GDS file has changed. The The merging of the ground plane and central conductor elements is problematic for those of us who need to do our own cheesing and other post-processing, as the ground plane needs to be treated differently to other metallic elements like central conductors. |
I am not using the cheesing but I had made some comits to port it to |
Fix tests on Mac
|
Thank you @shanto268 @PositroniumJS and @SamWolski , I feel we are on good track here. Excited to get close in the next week or two to merge this super-mega pull request and version update into main. We will then advertise in the Quantum device community and have more people who would like to test it and try it out. After a few small patches, and when we feel it's in a stable in a version that it could be used in a tutorials for next year's quantum device workshop, we can tag it and release it as unofficial new version across the distribution channels. This will be a big moment for the community, the community has been waiting this for maybe two years. Of course, we will make further improvements for the Quantum device workshop tutorials down the line after that, but it will be good to have this in a stable enough place. |
Clean python env created with conda, only qiskit-metal (either main or this PR) installed: Generate a minimal design that will actually export something: On main, this is successful and generates the GDS file as expected. |
If I run the same minimal script, but bypass the cheesing just before the export with The main version creates layers |
|
I've managed to solve both the issues for positive masks; it's just a few lines that were dropped in the port to |
Before porting from gdspy to gdstk, the ground plane for positive masks had a dedicated cell (eg. ground_main_1) and layer with datatype 0. This was lost during the port, and is restored here. This functionality allows the ground plane to be easily differentiated from other metallized regions for custom post-processing after gds export, such as adding high-density cheesing.
|
Just verified, no changes need to be made for the negative mask (no separate ground plane layer was ever created, and the generated files appear to match). PR is submitted. |
| # User Folders: | ||
| .scrapy | ||
| _sandbox_/ | ||
| _debug/ |
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.
| _debug/ |
| # virtualenv | ||
| .venv | ||
| venv/ | ||
| venvz/ |
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.
| venvz/ | |
| venvz/ |
What are the issues this pull addresses (issue numbers / links)?
Porting Qiskit Metal from PySide2 to PySide6 so that it can work natively on M* Macs (Apple Silicon).
Issues addressed:
Did you add tests to cover your changes (yes/no)?
No. N/A
Did you update the documentation accordingly (yes/no)?
Yes
Did you read the CONTRIBUTING document (yes/no)?
Yes
Summary
Fixed changes from PR #908 to pass automated CI workflows and tests, ensuring compatibility with updated dependencies, environment configurations, and the latest (11/17/2024)
mainbranch.Details and comments
Built on top of changes made by @obrienpja in PR #908.
Changes to
QWidget_PlaceholderTextandQTableView_AllComponents:QWidget_PlaceholderTextclass to ensure proper initialization and compatibility withPySide6.PySide6standards.QTableView_AllComponentsto correctly inherit and integrate withQWidget_PlaceholderText, ensuring both functionality and visual styling work seamlessly.Requirements and environment updates:
environment.ymlfile to use stable, OS-agnostic dependencies for Python 3.10.pyaedt, to ensure a consistent build across different operating systems.Testing and validation:
mainbranch workflows to confirm identical behavior.