Skip to content
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

Variable type annotations for homogeneous tuples #1575

Merged
merged 79 commits into from
Feb 15, 2024
Merged

Conversation

EmilyBourne
Copy link
Member

@EmilyBourne EmilyBourne commented Oct 22, 2023

Handle the indexing of a tuple class for type annotations. For now only homogeneous tuples are handled. Inhomogeneous tuples will be simple to add once InhomogeneousTupleVariable is deprecated.
Fix handling of homogeneity in PythonTuple. Fixes #1182

Commit Summary

  • Fix handling of homogeneity in PythonTuple
  • Correct class type in PythonMin and PythonMax
  • Update documentation to describe tuple annotations
  • Add LiteralEllipsis class to help describe homogeneous tuple type annotations
  • Handle slices passed to NumpyArray
  • Add class type checking to type change checks
  • Allow _visit_X functions to be added for built-in classes.
  • Add tests
  • Fix test containing a type change (list to ndarray)
  • Use pyccel_to_sympy to allow the use of a*(3-1) syntax where a is a tuple. Previously this was precluded as 3-1 is not an integer
  • Remove dead code

@pyccel-bot
Copy link

pyccel-bot bot commented Oct 22, 2023

Hello again! Thank you for this new pull request 🤩.

Please begin by requesting your checklist using the command /bot checklist

@EmilyBourne EmilyBourne changed the title WIP: variable type annotations for tuples Variable type annotations for homogeneous tuples Dec 21, 2023
@EmilyBourne
Copy link
Member Author

/bot run linux

@EmilyBourne
Copy link
Member Author

/bot run pylint pyccel_lint docs spelling

@EmilyBourne
Copy link
Member Author

/bot run pylint docs

@EmilyBourne
Copy link
Member Author

EmilyBourne commented Dec 21, 2023

Here is your checklist. Please tick items off when you have completed them or determined that they are not necessary for this pull request:

  • Write a clear PR description
  • Add tests to check your code works as expected
  • Update documentation if necessary
  • Update Changelog
  • Ensure any relevant issues are linked
  • Ensure new tests are passing

@EmilyBourne
Copy link
Member Author

/bot run coverage pylint pyccel_lint docs spelling

Copy link

@pyccel-bot pyccel-bot bot left a comment

Choose a reason for hiding this comment

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

There seems to be lines in this PR which aren't tested. Please take a look at my comments and add tests which cover the new code.

If this is modified code which cannot be easily tested in this PR please open an issue to request that this code be either removed or tested. Once you have done that please leave a message on the relevant conversation beginning with the line /bot accept and referencing the issue.

Similarly if the new code cannot be tested for some reason, please leave a comment beginning with the line /bot accept on the relevant conversation explaining why the code can't be tested.

pyccel/parser/semantic.py Outdated Show resolved Hide resolved
pyccel/parser/syntactic.py Outdated Show resolved Hide resolved
@EmilyBourne EmilyBourne marked this pull request as ready for review January 31, 2024 15:30
Copy link

@pyccel-bot pyccel-bot bot left a comment

Choose a reason for hiding this comment

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

Good job ! Your PR is using all the code it added/changed.

@pyccel-bot
Copy link

pyccel-bot bot commented Jan 31, 2024

Hey @pyccel/pyccel-dev ! @EmilyBourne has just created this great new pull request! Check it out and let me know what you think!

@pyccel-bot pyccel-bot bot requested a review from a team January 31, 2024 15:55
Copy link
Contributor

@Farouk-Echaref Farouk-Echaref left a comment

Choose a reason for hiding this comment

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

Everything looks good to me; the code changes seem understandable, and the documentation is clear.

@pyccel-bot pyccel-bot bot added Ready_for_review Received at least one approval. Requires review from senior developer and removed needs_initial_review labels Feb 2, 2024
@pyccel-bot
Copy link

pyccel-bot bot commented Feb 2, 2024

Hey @yguclu, @EmilyBourne, this PR is looking pretty good. @EmilyBourne and @Farouk-Echaref think it is ready to merge. Could you add your expertise to confirm that this follows all the coding conventions and fits in Pyccel's future plans? Thanks 😄

@pyccel-bot pyccel-bot bot added Ready_to_merge Approved by senior developer. Ready for final approval and merge and removed Ready_for_review Received at least one approval. Requires review from senior developer labels Feb 15, 2024
@yguclu
Copy link
Member

yguclu commented Feb 15, 2024

/bot run pr_tests

Copy link

@pyccel-bot pyccel-bot bot left a comment

Choose a reason for hiding this comment

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

Good job ! Your PR is using all the code it added/changed.

@pyccel-bot pyccel-bot bot added Ready_to_merge Approved by senior developer. Ready for final approval and merge and removed Ready_to_merge Approved by senior developer. Ready for final approval and merge labels Feb 15, 2024
@yguclu yguclu merged commit a14db51 into devel Feb 15, 2024
11 checks passed
@yguclu yguclu deleted the ebourne_tuple_annotation branch February 15, 2024 10:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Containers tuples/lists/sets/maps Ready_to_merge Approved by senior developer. Ready for final approval and merge Type specification
Projects
None yet
Development

Successfully merging this pull request may close these issues.

inhomogeneous tuples breaks pyccel
3 participants