-
Notifications
You must be signed in to change notification settings - Fork 8
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
feat: python support, validated with quickstart #159
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…o 'pluto-client', publish the initial 'pluto-base' pypi package
- add serveral resource types to the python client sdk, including Router, KVStore, Queue, SageMaker - add utils, resource base type, platform type, provisioning type to the python base sdk
…l, clarify the meaning of the `ge_resource_id` parameters, and format all Python code
feat(sdk): initialize the python version of both client sdk and base sdk
Incorporated pyright code into the pyright deducer and adjusted several aspects to meet our requirements, including: - remove the `tests` directory - add the `vscode-languageserver-protocol` package to the `package.json` file - add `"declaration": true,` to the `tsconfig.json` file - change the target and lib in the `tsconfig.json` file to `es2022` and `es2022` respectively - change the outDir in the `tsconfig.json` file to `./dist` - keep only `src` in the `include` array of the `tsconfig.json` file, removing everything else. - remove the `test` command from the `package.json` file. When the deducer is published, it will come packaged with the pyright-internal package.
feat(deducer): initialize the deducer which is based on the pyright
feat(deducer): support searching all call nodes related to the specific types' direct usage
…ect calls to data class constructors
feat(deducer): support evaluating the values of literal types and direct calls to data class constructors
…ponding to the caller of a special method call
feat(deducer): support searching for the constructor call node corresponding to the caller of a special method call
…nfrastructure api calls.
… readability - change `ClosureExtractor` to `CodeExtractor` and rename methods in this class
feat(deducer): support extracting codes for the arguments of the infrastructure api calls
- Add an ability to CodeExtractor to find the client APIs called and accessed captured properties within a code segment. - Support deducing a Python file to obtain an architecture reference.
…outdated version of @types/node
feat(deducer): streamline the entire deduction process
…on file and copying them to the designated directory
feat(deducer): support finding nested dependent modules within a python file and copying them to the designated directory
…dating it with a quick start
feat: support python workflow, validating with the quickstart
feat(deducer): support working without `extraPaths`
…ass member The issue arises due to the class node and its members being at the same scope level. We can't verify whether the variables within a class member are located within the class scope.
…racting codes and evaluating values Dictionaries can be used as custom arguments in the constructor call, including user-defined environment variables.
… the dependencies
enhance: support more types when deducing, and fix bugs - Fix a bug that the local variables within a class's member are incorrectly identified as needing extraction. This issue arises because the class node and its members are at the same scope level. We cannot confirm whether the variables within a class member are located within the class scope. - Fix a bug in dumping the Pluto project configuration to a configuration file, where it incorrectly includes some information that should not be included, such as the state attribute of the stack. - Add support for dictionaries, lists, and tuples types when extracting codes and evaluating values. This feature is useful when users need to add custom configurations to infrastructure resources, such as environment variables. - Include the dist-info directory of Python packages when extracting dependencies.
🦋 Changeset detectedLatest commit: 1c3c5fa The changes in this PR will be included in the next version bump. This PR includes changesets to release 10 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):
fix Support Python #146
2. What is the scope of this PR (e.g. component or file name):
3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):
We created a deducer using Pyright. It can automatically analyze the dependent packages for each section of business logic, and the adapter includes them in the zip archive for publishing on AWS Lambda. Currently, Pluto supports simple Python projects. Users can use the
pluto
command to create and deploy Python projects. However, if the project relies on packages with different distribution packages on various platforms, or if the archive size after zipping exceeds the AWS limit of 50 MB, it will fail. For more details, you can find in the PRs related to the issue #146 .4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):
5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links: