-
Notifications
You must be signed in to change notification settings - Fork 79
Expand type annotations and add classes for path item handling #412
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
…add various missing properties BREAKING CHANGE: Uses syntax that requires Python 3.10, removes echo, compareWithNumbers and system functions, which simply wrapped basic Python constructs without adding any extra functionality, and makes getByName return None instead of throwing when no match is found.
| PhotoshopSaveOptions | ||
| TargaSaveOptions | ||
| TiffSaveOptions | ||
| None = None, |
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.
line break before binary operator
| PNGSaveOptions | ||
| PhotoshopSaveOptions | ||
| TargaSaveOptions | ||
| TiffSaveOptions |
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.
line break before binary operator
| PDFSaveOptions | ||
| PNGSaveOptions | ||
| PhotoshopSaveOptions | ||
| TargaSaveOptions |
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.
line break before binary operator
| JPEGSaveOptions | ||
| PDFSaveOptions | ||
| PNGSaveOptions | ||
| PhotoshopSaveOptions |
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.
line break before binary operator
| GIFSaveOptions | ||
| JPEGSaveOptions | ||
| PDFSaveOptions | ||
| PNGSaveOptions |
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.
line break before binary operator
| EPSSaveOptions | ||
| GIFSaveOptions | ||
| JPEGSaveOptions | ||
| PDFSaveOptions |
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.
line break before binary operator
options: BMPSaveOptions | ||
| EPSSaveOptions | ||
| GIFSaveOptions | ||
| JPEGSaveOptions |
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.
line break before binary operator
file_path: str, | ||
options: BMPSaveOptions | ||
| EPSSaveOptions | ||
| GIFSaveOptions |
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.
line break before binary operator
self, | ||
file_path: str, | ||
options: BMPSaveOptions | ||
| EPSSaveOptions |
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.
line break before binary operator
…ugh they are converted to integers
def get(self, key: str) -> TextFont | None: | ||
... | ||
|
||
def get(self, key: str, default: T | None = None) -> TextFont | T | None: |
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.
redefinition of unused 'get' from line 81
... | ||
|
||
@overload | ||
def get(self, key: str) -> TextFont | None: |
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.
redefinition of unused 'get' from line 77
This PR adds extensive type annotations, various missing properties, classes for interacting with path items and tries to lessen some of the repetition within the code. The type annotations don't cover everything, especially things that would have required creating new wrapper classes. The annotations are mostly based on Photoshop Scripting Reference and Photoshop JavaScript Scripting Reference 2020.
Breaking Changes
pyproject.toml
.Application.compareWithNumbers
,Application.system
andSession.echo
functions as they simply wrapped basic Python actions without adding any extra functionality to them, so I assumed they aren't really necessary.getByName
now returnsNone
instead of throwing, as I find that easier to work with in a strictly typed codebase.Testing
I added some tests of my own and ran some of the existing tests, though many of them didn't pass even when using the version from main branch. I also used this a bit with Proxyshop, which uses especially the basic layer modification and action manager parts of the API. There's still many untested properties and functions, so bugs are quite likely.
This might also help with #405.
Please let me know what further changes would be required to get this merged.