Open billwan96 opened 5 months ago
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
The package includes all the following forms of documentation:
pyproject.toml
file or elsewhere.Readme file requirements The package meets the readme requirements below:
The README should include, from top to bottom:
NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)
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 whether:
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:
Estimated hours spent reviewing: 1.5
Nice work. Your documentation (README, vignettes) in general is clear and easy to follow. The package can be install and run smoothly.
I only have some minor revision suggestions on the documentation.
Since this is a version before publishing the package on pypi etc., so users should be able to install the package from github. It would be better to have the instruction on how to do that: $ git clone https://github.com/UBC-MDS/Group16_knnmodel.git
, just before your "Installation" instruction point 1 of the README.
I follow your "Usage" section of the README, but in the second last line, it throws an error message NameError: name 'evaluate' is not defined
, because your have not imported your evaluate
function in the beginning. After adding from pkg_pyknnclassifier.evaluate import evaluate
, everything in the "Usage" section works fine.
In the "Functions" section of the README, it is better to use backticks to differentiate between function code and plain text to enhance clarity.
By the time I am reviewing your repo, there is a file named scaling.py
, which was created 2 weeks ago in your root directory. This file seems unnecessary and does not align with the Python package structure.
In the "Narrative" section of your vignettes, the term "some transformation" seems a bit unclear to users. It would be better to rephrase and clarify this term, for instance, "If your data involves some categorical features, please convert them into a numerical format using appropriate encoding techniques before using our package".
In the vignettes, "Data-Loading" section, the species' Latin names should be italic: Iris Setosa and Iris Versicolor. Also in this section, no code is involved. It seems the code chunk
path_to_training = "../data/iris_train.csv"
path_to_validation = "../data/iris_valid.csv"
target_column = "Species"
X_train, y_train = data_loading(path_to_training, target_column)
should be embedded in this section rather than the "Preprocessing" section.
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
The package includes all the following forms of documentation:
pyproject.toml
file or elsewhere.Readme file requirements The package meets the readme requirements below:
The README should include, from top to bottom:
NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)
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 whether:
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:
Estimated hours spent reviewing:
The User Guide is well-written and easy to follow for someone unfamiliar with the KNN classifier. I was able to follow the instructions to download the package and use it locally. The coverage is good and all the tests are passed. I like the icon made for the package, which is very creative! Some minor changes I suggest below to make your user guide flow more smoothly:
README
which is good for the user to get a full understanding of the package. For an added layer of clarity, consider wrapping each function name within backticks (`) to differentiate them more clearly in the text. README
, scaling down the logo could refine the visual balance of the guide.scaling.py
file is currently located there. It might be more in keeping with conventional project structure to move this file into the src/ directory, to maintain a clean separation of concerns.(print(pkg_pyknnclassifier.__version__))
. It could be beneficial to relocate this to a separate cell to maintain the import cell's focus, or it might be streamlined away if deemed non-essential.iris
dataset towards the end of the example file is a wise choice. 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
The package includes all the following forms of documentation:
pyproject.toml
file or elsewhere.Readme file requirements The package meets the readme requirements below:
The README should include, from top to bottom:
NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)
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 whether:
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:
Estimated hours spent reviewing:
Hi, overall it looks great and works without any issues. A few suggestions for improvements though:
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
The package includes all the following forms of documentation:
pyproject.toml
file or elsewhere.Readme file requirements The package meets the readme requirements below:
The README should include, from top to bottom:
NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)
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 whether:
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:
Estimated hours spent reviewing:
I've got some suggestions on how to improve your package:
There is some mistypo(s) on README.(@Functions: This pacakge...)
The installation instruction doesn't correctly instruct an user to install the package. You skip the step to install poetry inside the conda environment pyknnclassifier
, you should add pip install poetry
before give us instruction to run poetry install
or give instruction like If you dont have poetry installed in your base environment, you can follow the installation guide(with provided link) for poetry.
It would be great if you add on the instruction on how to clone your repository to user's local machine. such as
Clone the github repository using:
git clone https://github.com/UBC-MDS/Group16_knnmodel.git
No consistency in the code block, some has the $, some has not. In my opinion, you should cut off $
because when an user copies your command from the README, an user doesn't need to erase the $
before running a command line.
Your instruction to run the tests is not provided good details on your tests. In my opinion, it would be better if you provided the tests via poetry:
poetry run pytest tests/ --cov=src/pkg_pyknnclassifier/
instead of
pytest tests/
The test coverage report shown that there are some code which haven't been covered by the tests on calculate_distance.py
(75%)(branch cover 67%), evaluate.py
(97%)(branch cover 97%), and scaling.py
(73%)(branch cover 71%).
From the Usage
example in README, First I can't run the line:
accuracy_result = evaluate(target, pred, metric='accuracy') Traceback (most recent call last): File "
", line 1, in NameError: name 'evaluate' is not defined
As you forgot to provide the import line on evaluate function in the example, so you should add this line in example:
from pkg_pyknnclassifier.evaluate import evaluate
evaluate
.Anyways, thanks for your hard work!!! Also, I really love how you put the big logo picture at the top and some small logo on each topic. It makes your README look really nice and fun to follow your instruction.
P.S. I have not checked the box about following PEP 8 guidlines as I'm not able to tell and I think you don't linting set up it and it would be nice if you provide a separated link to your read the docs page, even you have posted the badge that can give access to read the docs page.
Submitting Author: Bill Wan(@billwan96) All current maintainers: (@zhang-shizhe, @sho-i98, @weiranzhao97) Package Name: pyknnmodel: A KNN model for binary classification Repository Link: https://github.com/UBC-MDS/Group16_knnmodel Version submitted: v2.0.0 Editor: @ttimbers Reviewer 1: Hayley
Reviewer 2: Nasim Reviewer 3: Kittipong Reviewer 4: Jing
Archive: TBD JOSS DOI: TBD Version accepted: TBD Date accepted (month/day/year): TBD
Code of Conduct & Commitment to Maintain Package
Description
Scope
Please indicate which category or categories. Check out our package scope page to learn more about our scope. (If you are unsure of which category you fit, we suggest you make a pre-submission inquiry):
Domain Specific & Community Partnerships
Community Partnerships
If your package is associated with an existing community please check below:
For all submissions, explain how the and why the package falls under the categories you indicated above. In your explanation, please address the following points (briefly, 1-2 sentences for each):
Who is the target audience and what are scientific applications of this package?
Are there other Python packages that accomplish the same thing? If so, how does yours differ?
If you made a pre-submission enquiry, please paste the link to the corresponding issue, forum post, or other discussion, or
@tag
the editor you contacted: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: JOSS accepts our review as theirs. You will NOT need to go through another full review. JOSS will only review your paper.md file. Be sure to link to this pyOpenSci issue when a JOSS issue is opened for your package. Also be sure to tell the JOSS editor that this is a pyOpenSci reviewed package once you reach this step.*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.
Confirm each of the following by checking the box.
Please fill out our survey
P.S. Have feedback/comments about our review process? Leave a comment here
Editor and Review Templates
The editor template can be found here.
The review template can be found here.