UBC-MDS / software-review-2021

1 stars 1 forks source link

Submission: pyeasytries (Python) #1

Open shoebillm opened 3 years ago

shoebillm commented 3 years ago

Submitting Author: Jordon Lau(@jordanlau123), Kaicheng Tan(@Andrew-Tan), Rachel Xu (@rainbowxyt0305), Mitchie Zhao (@shoebillm) Package Name: pyeasytries One-Line Description of Package: A python package that stores words in trie structures to facilitate searching. Repository Link: pyeasytries Version submitted: v0.4.0 Editor: Tiffany Timbers (@ttimbers )
Reviewer 1: TBD
Reviewer 2: TBD
Archive: TBD
Version accepted: TBD


Description

The pyeasytries package is a simple tool to aid word insertion, deletion, and searching in the trie data structure to reduce the searching time complexity from O(mlog(n)) using a balanced binary search tree to O(m). Users can pass any words to be stored for later-on searching or printing with certain prefix, and even modify the words in storage. pyeasytries contains two classes Trie and TrieNode, and the Trie class contains four functions: add(), contain(), find_prefix() and delete().

Scope

* Please fill out a pre-submission inquiry before submitting a data visualization package. For more info, see notes on categories of our guidebook.

Technical checks

For details about the pyOpenSci packaging requirements, see our packaging guide. Confirm each of the following by checking the box. This package:

Publication options

JOSS Checks - [ ] The package has an **obvious research application** according to JOSS's definition in their [submission requirements][JossSubmissionRequirements]. Be aware that completing the pyOpenSci review process **does not** guarantee acceptance to JOSS. Be sure to read their submission requirements (linked above) if you are interested in submitting to JOSS. - [ ] The package is not a "minor utility" as defined by JOSS's [submission requirements][JossSubmissionRequirements]: "Minor ‘utility’ packages, including ‘thin’ API clients, are not acceptable." pyOpenSci welcomes these packages under "Data Retrieval", but JOSS has slightly different criteria. - [ ] The package contains a `paper.md` matching [JOSS's requirements][JossPaperRequirements] with a high-level description in the package root or in `inst/`. - [ ] The package is deposited in a long-term repository with the DOI: *Note: Do not submit your package separately to JOSS*

Are you OK with Reviewers Submitting Issues and/or pull requests to your Repo Directly?

This option will allow reviewers to open smaller issues that can then be linked to PR's rather than submitting a more dense text based review. It will also allow you to demonstrate addressing the issue via PR links.

Code of conduct

P.S. *Have feedback/comments about our review process? Leave a comment here

Editor and Review Templates

Editor and review templates can be found here

jraza19 commented 3 years ago

Package Review

Documentation

The package includes all the following forms of documentation:

Readme requirements The package meets the readme requirements below:

The README should include, from top to bottom:

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider:

Functionality

For packages co-submitting to JOSS

Note: Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.

The package contains a paper.md matching JOSS's requirements with:

Final approval (post-review)

Estimated hours spent reviewing:


Review Comments

Hi pyeasytries Team!

Great work on this package! This is a really neat idea and although, I have not timed the queries explicitly, they seemed to be quite fast!

Please see below for some pointers below, I have split them up into two groups because some comments are just nice to haves.

Nice to have:

Great work overall 👍

jordanlau123 commented 3 years ago

Hi @jraza19

Thank you for taking the time to review and leave us feedback! I will contact the team in regards to the inconsistencies you have pointed out. We will get back to you after we implement the changes. In addition, thanks for providing future package enhancements ideas, we will definitely consider them moving forward.

-pyeasytries

GuanshuTao commented 3 years ago

Documentation

The package includes all the following forms of documentation:

Readme requirements The package meets the readme requirements below:

The README should include, from top to bottom:

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider:

Functionality

For packages co-submitting to JOSS

Note: Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.

The package contains a paper.md matching JOSS's requirements with:

Final approval (post-review)

Estimated hours spent reviewing:


Review Comments

Hi pyeasytries team!

General comments: I really enjoyed reviewing this package and the idea is very interesting and attractive to me. Also, I think this package is easy to use, and happy to play around with it. The coding part is neat and DRY. I tried all functions and they are all working nicely. It is convenient to use because there are no other dependencies. You have done a great job!

Specific parts:

Personal idea add-ons: I really liked this package and I think it may be a good idea if the add function can also add sentences and add each word from the sentences to the trie. So users can also type a sentence and add several words in a single call of the add function.