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

feat: add compile py command #441

Merged
merged 40 commits into from
Mar 11, 2024
Merged

feat: add compile py command #441

merged 40 commits into from
Mar 11, 2024

Conversation

PatrickDinh
Copy link
Contributor

@PatrickDinh PatrickDinh commented Feb 28, 2024

Proposed Changes

  • Add "compile py" command which compiles Python to TEAL with Puyapy
  • Puya compilation errors are shown
    image

Fixes #400

- Compile Python to TEAL with Puyapy
Copy link

github-actions bot commented Feb 28, 2024

Coverage

Coverage Report
FileStmtsMissCoverMissing
src/algokit
   __init__.py15753%6–13, 17–24, 32–34
   __main__.py440%1–7
src/algokit/cli
   completions.py108298%83, 98
   deploy.py72790%44, 46, 92–94, 158, 182
   dispenser.py121199%77
   doctor.py48394%142–144
   explore.py501276%34–39, 41–46
   generate.py67396%74–75, 140
   goal.py44198%71
   init.py2752591%384–385, 440, 443–445, 456, 460, 516, 542, 571, 604, 613–615, 618–623, 636, 653, 665–666, 683–686
   localnet.py1191587%74–78, 111, 123, 138–148, 161, 206, 227–228
   task.py34391%25–28
src/algokit/cli/common
   utils.py26292%120, 123
src/algokit/cli/tasks
   analyze.py81199%81
   assets.py821384%65–66, 72, 74–75, 105, 119, 125–126, 132, 134, 136–137
   ipfs.py51884%52, 80, 92, 94–95, 105–107
   mint.py66494%48, 70, 91, 250
   send_transaction.py651085%52–53, 57, 89, 158, 170–174
   sign_transaction.py59886%21, 28–30, 71–72, 109, 123
   transfer.py39392%26, 90, 117
   utils.py994555%26–34, 40–43, 75–76, 100–101, 125–133, 152–162, 209, 258–259, 279–290, 297–299
   vanity_address.py561082%41, 45–48, 112, 114, 121–123
   wallet.py79495%21, 66, 136, 162
src/algokit/core
   bootstrap.py1191191%42, 106–107, 129, 156, 185–190
   conf.py661577%12, 24, 28, 36, 38, 72–74, 92–100
   deploy.py691184%61–64, 73–75, 79, 84, 91–93
   dispenser.py2022687%91, 123–124, 141–149, 191–192, 198–200, 218–219, 259–260, 318, 332–334, 345–346, 356, 369, 384
   doctor.py65789%67–69, 92–94, 134
   generate.py48394%44, 81, 99
   goal.py60395%30–31, 41
   init.py39685%59, 63–68, 76
   log_handlers.py68790%50–51, 63, 112–116, 125
   proc.py45198%98
   sandbox.py2181892%62, 73–75, 96, 142–149, 160, 457, 473, 498, 506
   typed_client_generation.py80594%55–57, 70, 75
   utils.py1063171%44–45, 49–68, 129, 132, 138–152
   version_prompt.py921485%37–38, 68, 87–90, 108, 118–125, 148
src/algokit/core/compile
   python.py31584%19–20, 25, 48–49
src/algokit/core/tasks
   analyze.py93397%105–112, 187
   ipfs.py63789%58–64, 140, 144, 146, 152
   nfd.py491373%25, 31, 34–41, 70–72, 99–101
   vanity_address.py903462%49–50, 54, 59–75, 92–108, 128–131
   wallet.py71593%37, 129, 155–157
src/algokit/core/tasks/mint
   mint.py781087%123–133, 187
   models.py901188%50, 52, 57, 71–74, 85–88
TOTAL368843788% 

Tests Skipped Failures Errors Time
418 0 💤 0 ❌ 0 🔥 29.546s ⏱️

@PatrickDinh PatrickDinh marked this pull request as ready for review February 28, 2024 08:04
@PatrickDinh PatrickDinh marked this pull request as draft February 29, 2024 03:14
@PatrickDinh PatrickDinh marked this pull request as ready for review February 29, 2024 23:19
@neilcampbell neilcampbell marked this pull request as draft March 1, 2024 04:00
@PatrickDinh PatrickDinh marked this pull request as ready for review March 4, 2024 10:07
Copy link
Collaborator

@aorumbayev aorumbayev left a comment

Choose a reason for hiding this comment

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

Great work @PatrickDinh , left some comments - also to clarify docs are removed temporarily? The plan is to rewrite it again once this goes public? Wonder if we should have the docs written beforehand and stashed somewhere internally to not spend time rewriting it once we make it public.

tests/compile/test_py.py Outdated Show resolved Hide resolved
src/algokit/cli/compile.py Show resolved Hide resolved
@PatrickDinh
Copy link
Contributor Author

Great work @PatrickDinh , left some comments - also to clarify docs are removed temporarily? The plan is to rewrite it again once this goes public? Wonder if we should have the docs written beforehand and stashed somewhere internally to not spend time rewriting it once we make it public.

Thanks @aorumbayev for reviewing, good call out about the doc, I'll stash it locally.

src/algokit/core/compile.py Outdated Show resolved Hide resolved
src/algokit/core/compile.py Outdated Show resolved Hide resolved
src/algokit/core/compile.py Outdated Show resolved Hide resolved
src/algokit/core/compile.py Outdated Show resolved Hide resolved
Copy link
Contributor

@neilcampbell neilcampbell left a comment

Choose a reason for hiding this comment

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

Looks good.
Might be worth just confirming internally if we want algokit compile py or algokit compile python?

Copy link
Collaborator

@aorumbayev aorumbayev left a comment

Choose a reason for hiding this comment

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

@PatrickDinh just minor comments left regarding my initial suggestions with tests, lmk what you think

tests/compile/test_py.py Outdated Show resolved Hide resolved
@PatrickDinh PatrickDinh merged commit 1030799 into main Mar 11, 2024
14 checks passed
@neilcampbell neilcampbell deleted the integrate-puya branch March 21, 2024 04:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Puya integration into algokit-cli, removing the need to install them explicitly
3 participants