flip-fest icon indicating copy to clipboard operation
flip-fest copied to clipboard

Improve Existing SDK: Python

Open srinjoyc opened this issue 3 years ago • 8 comments

Description (Problem Statement)

​ This issue is relevant if you wish to continue the work on the existing Python SDK . If you wish to create a new python SDK, this is the right issue for you. ​ Currently, the Flow python SDK is not yet in a release-worthy condition, however, a significant amount of work has already been done: ​

  • Cadence JSON parsing
  • Sending scripts
  • Getting script results
  • Sending transaction
  • CI framework and release flow ​ The missing parts are: ​
  1. More tests
  2. A rework of the examples so they follow the user stories in the SDK Guidelines
  3. Documentation:
    1. Installation
    2. Usage
    3. Contribution
  4. Optimise for performance and usage ​

Experience Required

  • Experience with python
  • High-level understanding of Flow's architecture (block production, transaction states, etc.)
  • Understanding of gRPC
  • Understanding of the Flow Access API ​

Minimum Feature Set (Acceptance Criteria)

Meet the SDK Guidelines

Extension (Optional) Feature Set

Additional Functionality

  • Identify and create methods that abstract common patterns to make it easier for developers to employ these patterns in their dapp. ​ Some possible functionalities are: ​
  • Transaction templates for common transactions (like creating accounts, transferring FLOW, adding keys, ...)
  • Automatically fetching the reference block when submitting transactions so the user does not need to writhe extra code to do that.
  • An event subscription mechanic ​

Milestone Requirements

  1. Implement examples covering all user stories.
  2. Create tests, documentation, and optimize for performance and usability. ​

Software Requirements

  • All requirements listed in the SDK Guidelines
  • Production-ready code: The SDK is expected to be used in production by third parties and so it should be secure, performant, and ready to use out of the box with minimal configuration. ​

Other Requirements

Documentation

  • The following pieces of documentation need to be completed alongside the code for a successful submission:
    • Installation Guide: How to get this application up and running.
    • Usage Guide: A highlight of all the features available and how to use them.
    • Contribution Guide: A thorough explanation of the codebase, where features are located, a diagram explaining complex interactions, etc. This is intended to be a primer for new contributors that would like to add or modify features. ​ Code standards or guidelines
  • Create code guidelines based on the best practices of the language chosen - attempt to be as semantic as possible to that language. Follow these guidelines during development, and assess against them for new contributions. ​

Judging Criteria

  • For all projects, technical & high-level judging criteria apply.
  • How easy and comprehensive is the SDK to use for Flow developers?
  • How many use cases does it cover?
  • How complex is it to learn and use?
  • How performant is it to use in production? ​

Resources

srinjoyc avatar Sep 27 '21 13:09 srinjoyc

Hi to anyone checking out this issue 👋 !

I'm an engineer from the Flow team. I work with the Flow virtual machine (FVM) and I also started the flow-py-sdk.

Feel free to contact me for any questions, comments or advice about this issue.

You can reach me here or on discord (TheOneSock#1135 JanezP on the flow discord).

janezpodhostnik avatar Sep 27 '21 15:09 janezpodhostnik

So far We added some definition to some function in client class. Add block, account key and event example Adding a new method, from_seed, to AccountKey class Add a generating key docs

Cuttlas90 avatar Sep 28 '21 14:09 Cuttlas90

in second pull clients function definitions are completed. script and transaction example are added. building example, performing script, querying event, retrieving block, retrieving collection doc are added

Cuttlas90 avatar Oct 02 '21 15:10 Cuttlas90

update: provided comments in the flow-py-sdk repo

kerrywei avatar Oct 26 '21 20:10 kerrywei

update: feedback provided. really good progress so far!

kerrywei avatar Oct 29 '21 19:10 kerrywei

Good day @amhossaini, @barekati!

Thanks so much for all your hardwork & participation. In order to finalize winners & prepare for prize payout, we'll need the following actions from your end.

Please provide the following information by Nov 17, 2021, (in this GH Issue is fine):

1. Team Information

  • Team Members Information - Github Username + Email Contact + Percentage of prize allocation (total should = 100%)
  • All mentioned members MUST react to the post with a 👍 which will act as confirmation that the information is correct, or a 👎 to indicate that the information is not correct.
  • We will be reaching out via e-mail

🎖IMPORTANT: We will only proceed with prize payouts once all members have confirmed with 👍 on the post.

2. Video Demo (optional)

  • Please provide a 5-minute video demo to be featured & showcased in the FLIP Fest Closing Ceremonies
  • Link format & Downloadable (eg. Google Drive, Vimeo)
  • Content Format (Problem Statement, your work / how you solved it, final outcome)

We will be hosting Closing Ceremonies on November 23rd, 8AM PT where we'll having closing remarks from Dete & will be announcing the winners! I'll share the details here before Nov 17.

kimcodeashian avatar Nov 12 '21 23:11 kimcodeashian

Hi @kimcodeashian

Cuttlas90 avatar Nov 13 '21 19:11 Cuttlas90

Hey folks,

We've received and reviewed over 82 submissions! What an amazing community on Flow! To commemorate all the hard work done, we have finalized winners and will be announcing them during our Closing Ceremony on Nov 23rd, 8AM PT. Be sure to join us - there may be some attendance prizes & a keynote from our CTO, Dete 😉!

RSVP here so you don't miss out! See you then!

kimcodeashian avatar Nov 17 '21 01:11 kimcodeashian