UBC-MDS / software-review

MDS Software Peer Review of MDS-created packages
1 stars 0 forks source link

Submission: samplingsimulatorpy (Python) #35

Open hwilliams10 opened 4 years ago

hwilliams10 commented 4 years ago

Submitting Author: Name (@hwilliams10, @lisebraaten, @tguo9, @YueJiangMDSV)
Package Name: samplingsimulatorpy One-Line Description of Package: Create, sample from, and view histograms from virtual populations. Repository Link: https://github.com/UBC-MDS/samplingsimulatorpy Version submitted: 1.1.0 Editor: @kvarada Reviewer 1: @chuusan Reviewer 2: @slbsolomon Archive: TBD
Version accepted: TBD


Description

samplingsimulatorpy is a Python package that allows users to generate virtual populations which can be sampled from in order to compare and contrast sample vs sampling distributions for different sample sizes. The package also allows users to sample from the generated virtual population (or any other population), plot the distributions, and view summaries for the parameters of interest.

Scope

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

This package is intended to assist in teaching and/or learning basic statistical inference by allowing users to generate virtual populations to compare and contrast sampling vs sample distributions and parameters.

The target audience is instructors and/or students teaching or learning basic statistical inference.

To the best of our knowledge, there is currently no existing Python package with the specific functionality to create virtual populations and make the specific sample and sampling distributions described above. We do make use of many existing Python packages and expand on them to make very specific functions. These include:

N/A

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](https://joss.readthedocs.io/en/latest/submitting.html#submission-requirements). 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](https://joss.readthedocs.io/en/latest/submitting.html#submission-requirements): "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](https://joss.readthedocs.io/en/latest/submitting.html#what-should-my-paper-contain) 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

slbsolomon commented 4 years ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

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:

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: 1

Review Comments

chuusan commented 4 years ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

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:

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: 2 hours


Review Comments

Summary

It is super efficient to deploy such a great package do statistical inferencing compared to the traditional cumbersome way. Great job, guys! The development follows a standard python package creation process with detailed documentation, fully covered tests, and is successfully built and released. The package has a range of useful functions. Meanwhile, the naming is very intuitive. Overall the user experience is good. Below are detailed comments and some suggestions from different perspectives:

Installation

The installation process is very smooth and very fast. The installation instruction is very clear!

Functionality
Documentation

The function documentations are well-designed and succinct. However, one thing I want to bring to authors' attention is that documentation for function [stat_summary](https://samplingsimulatorpy.readthedocs.io/en/latest/source/samplingsimulatorpy.html#module-samplingsimulatorpy.stat_summary) is wrongly formatted. Screen Shot 2020-03-21 at 1 59 24 AM

Tests

It is impressive to have 100% coverage. Well done! I only have some minor suggestion in terms of the brief explanation of each test.

Screen Shot 2020-03-21 at 10 58 51 PM
Others

In CONTRIBUTORS file, it is nice to list contributors’ Github handles. It would be perfect, if the handle is linked.

Screen Shot 2020-03-21 at 11 05 04 PM
Conclusion

I am excited to see the further development of the package! Once again, good job, guys!

lisebraaten commented 4 years ago

Thank you @slbsolomon and @chuusan for your reviews and feedback! Please see our release v.2.0.0 for the updates we have made based on your recommendations.

The following changes have been made based on your feedback:

@slbsolomon - all four of us have tested the Read the Docs link in the README and were able to access the documentation. I'm glad you were able to access through the badge - not sure why the link wasn't working for you but hopefully it is now. As for assigning a variable name to our example use of generate_virtual_pop and draw_samples, we had done this since our plotting functions rely on these outputs as inputs.

@chuusan - the choice of making the expected type of the n_s argument (which we have since updated to be named sample_size for clarity) a list was intentional as the function expects multiple integer values as input.

Thank you again for all your work on reviewing our package. We really appreciate your time and effort!