Skip to content

Submission:pyimager #46

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

Open
8 of 22 tasks
dataubc opened this issue Mar 17, 2020 · 3 comments
Open
8 of 22 tasks

Submission:pyimager #46

dataubc opened this issue Mar 17, 2020 · 3 comments
Assignees

Comments

@dataubc
Copy link

dataubc commented Mar 17, 2020


Submitting Author: Keanna Knebel (@Keanna-K ), Mohammed Salama (@dataubc),Zhengyang (@zoepan00 ) Pan, Haoyu (@clsu22)
Package Name: pyimager
One-Line Description of Package: The pyimager package contains functions that aid in image manipulation and processing.
Repository Link: https://github.com/UBC-MDS/pyimager
Version submitted: 1.1.0
Editor: Varada kolhatkar @kvarada)
Reviewer 1: Sakariya Aynashe(@eyrakas)
Reviewer 2: Holly Williams(@hwilliams10)
Archive: TBD
Version accepted: TBD


Description

  • Include a brief paragraph describing what your package does:
    Pyimager is a python package that provides a quick and easy way to do some simple image processing and graphic editing. Based on the main needs of graphic editing, the package integrates four functionalities

Scope

  • Please indicate which category or categories this package falls under:
    • Data retrieval
    • Data extraction
    • Data munging
    • Data deposition
    • Reproducibility
    • Geospatial
    • Education
    • Data visualization*

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

  • Explain how the and why the package falls under these categories (briefly, 1-2 sentences):
    The package does images processing and manipulation changing it from the original state.

  • Who is the target audience and what are scientific applications of this package?
    Image manipulation
    Everyone interested in image processing and visualization

  • Are there other Python packages that accomplish the same thing? If so, how does yours differ?
    Yes, such as OpenCV. it is different in terms of the methodology that was applied

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

  • does not violate the Terms of Service of any service it interacts with.
  • has an OSI approved license
  • contains a README with instructions for installing the development version.
  • includes documentation with examples for all functions.
  • contains a vignette with examples of its essential functions and uses.
  • has a test suite.
  • has continuous integration, such as Travis CI, AppVeyor, CircleCI, and/or others.

Publication options

JOSS Checks
  • The package has an obvious research application according to JOSS's definition in their 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: "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 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.

  • Yes I am OK with reviewers submitting requested changes as issues to my repo. Reviewers will then link to the issues in their submitted review.

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

@dataubc dataubc changed the title pyimager Submission:pyimager Mar 17, 2020
@hwilliams10 hwilliams10 self-assigned this Mar 18, 2020
@eyrakas
Copy link

eyrakas commented Mar 19, 2020

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

  • As the reviewer I confirm that there are no conflicts of interest for me to review this work (If you are unsure whether you are in conflict, please speak to your editor before starting your review).

Documentation

The package includes all the following forms of documentation:

  • A statement of need clearly stating problems the software is designed to solve and its target audience in README
  • Installation instructions: for the development version of package and any non-standard dependencies in README
  • Vignette(s) demonstrating major functionality that runs successfully locally
  • Function Documentation: for all user-facing functions
  • Examples for all user-facing functions
  • Community guidelines including contribution guidelines in the README or CONTRIBUTING.
  • Metadata including author(s), author e-mail(s), a url, and any other relevant metadata e.g., in a setup.py file or elsewhere.

Readme requirements
The package meets the readme requirements below:

  • Package has a README.md file in the root directory.

The README should include, from top to bottom:

  • The package name
  • Badges for continuous integration and test coverage, the badge for pyOpenSci peer-review once it has started (see below), a repostatus.org badge, and any other badges. If the README has many more badges, you might want to consider using a table for badges, see this example, that one and that one. Such a table should be more wide than high.
  • Short description of goals of package, with descriptive links to all vignettes (rendered, i.e. readable, cf the documentation website section) unless the package is small and there’s only one vignette repeating the README.
  • Installation instructions
  • Any additional setup required (authentication tokens, etc)
  • Brief demonstration usage
  • Direction to more detailed documentation (e.g. your documentation files or website).
  • If applicable, how the package compares to other similar packages and/or how it relates to other packages
  • Citation information

Functionality

  • Installation: Installation succeeds as documented.
  • Functionality: Any functional claims of the software been confirmed.
  • Performance: Any performance claims of the software been confirmed.
  • Automated tests: Tests cover essential functions of the package and a reasonable range of inputs and conditions. All tests pass on the local machine.
  • Continuous Integration: Has continuous integration, such as Travis CI, AppVeyor, CircleCI, and/or others.
  • Packaging guidelines: The package conforms to the pyOpenSci packaging guidelines.

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:

  • A short summary describing the high-level functionality of the software
  • Authors: A list of authors with their affiliations
  • A statement of need clearly stating problems the software is designed to solve and its target audience.
  • References: with DOIs for all those that have one (e.g. papers, datasets, software).

Final approval (post-review)

  • The author has responded to my review and made changes to my satisfaction. I recommend approving this package.

Estimated hours spent reviewing: 2 hours


Review Comments

General Comments

Thank you for giving me the opportunity to provide some review on your amazing project. The README of your project greatly outlines all the installation requirements, dependencies and steps to be taken to successfully run your package. That was great and I was able to follow the guidelines without any issue. Personally, I liked all the functions which happen to be doing diverse functionality that fall under the same domain of image handling. Your function like circropper was elegantly designed and produces the desired circular image as the output. I have also tested the other functions such as redusize, reducolor and imgfilter and they all generate the desired output. As per the expectations outlined in your project repo, the test cases including some essential edges pertaining to function inputs have all been well taken care of. That is something I want to personally compliment to the team. Glad to see that you have also chosen a publicly available image for your testing to avoid any legal implications of having to go through tedious permissions for personal or licensed images. There are very minor aspects you may consider as an improvement if time permits, which is indicated in the specific comments below.

Specific Comments

  • The first minor comment I would like to make here is maybe if possible or time-permits, just like your circropper function, you could have the functions redusize, reducolor and imgfilter have their outputs displayed in the Jupyter cell once the function is run. Currently, an array of a matrix is displayed instead and while the processed image result is generated and stored in the specified directory, it will be nicer to have it displayed right away. This will give users a quick way of trying different image dimensions until they are satisfied with their choice.
  • I have personally run the package on a macOS platform, but I assume it could be run on other platforms such as Windows, Linux/Unix, Solaris, etc. If it may not be intended to run on some of the platforms, then a note could be added to the project’s README.
  • Another minor suggestion in your documentation is to include links to the specific versions of your dependencies. This will allow users to easily click the link to the right page and grab the install version for the dependencies. For instance, I had to change my version of matplotlib to successfully run the package.
  • If you have time, you may include in your documentation the reasons why you have chosen the licenses included in your package.
  • Lastly, just to build trust and credibility for your package testing image mandrill, you may consider including a link to the image source. This would enhance trust and credibility with your users for any data that you have used in your project.

Overall

  • Overall, this package is very well-designed and meets all the expectations listed in the project's objectives. I might have made comments that the team consider irrelevant at this point of the project, please do let me know in the thread. Thanks to everyone who put their valuable time and effort for making it to successful completion.
  • With further modifications where and if needed, your team my consider taking the next step towards publishing this package and make it publicly available as you please.

@hwilliams10
Copy link

hwilliams10 commented Mar 21, 2020

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

  • As the reviewer I confirm that there are no conflicts of interest for me to review this work (If you are unsure whether you are in conflict, please speak to your editor before starting your review).

Documentation

The package includes all the following forms of documentation:

  • A statement of need clearly stating problems the software is designed to solve and its target audience in README
  • Installation instructions: for the development version of package and any non-standard dependencies in README
  • Vignette(s) demonstrating major functionality that runs successfully locally
  • Function Documentation: for all user-facing functions
  • Examples for all user-facing functions
  • Community guidelines including contribution guidelines in the README or CONTRIBUTING.
  • Metadata including author(s), author e-mail(s), a url, and any other relevant metadata e.g., in a setup.py file or elsewhere.

Readme requirements
The package meets the readme requirements below:

  • Package has a README.md file in the root directory.

The README should include, from top to bottom:

  • The package name
  • Badges for continuous integration and test coverage, the badge for pyOpenSci peer-review once it has started (see below), a repostatus.org badge, and any other badges. If the README has many more badges, you might want to consider using a table for badges, see this example, that one and that one. Such a table should be more wide than high.
  • Short description of goals of package, with descriptive links to all vignettes (rendered, i.e. readable, cf the documentation website section) unless the package is small and there’s only one vignette repeating the README.
  • Installation instructions
  • Any additional setup required (authentication tokens, etc)
  • Brief demonstration usage
  • Direction to more detailed documentation (e.g. your documentation files or website).
  • If applicable, how the package compares to other similar packages and/or how it relates to other packages
  • Citation information

Functionality

  • Installation: Installation succeeds as documented.
  • Functionality: Any functional claims of the software been confirmed.
  • Performance: Any performance claims of the software been confirmed.
  • Automated tests: Tests cover essential functions of the package and a reasonable range of inputs and conditions. All tests pass on the local machine.
  • Continuous Integration: Has continuous integration, such as Travis CI, AppVeyor, CircleCI, and/or others.
  • Packaging guidelines: The package conforms to the pyOpenSci packaging guidelines.

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:

  • A short summary describing the high-level functionality of the software
  • Authors: A list of authors with their affiliations
  • A statement of need clearly stating problems the software is designed to solve and its target audience.
  • References: with DOIs for all those that have one (e.g. papers, datasets, software).

Final approval (post-review)

  • The author has responded to my review and made changes to my satisfaction. I recommend approving this package.

Estimated hours spent reviewing:

1.5 hrs


Review Comments

Overall

Great package idea! I can see how this would be useful, and it is pretty sleek that all your functions only require one line.

I was able to install and run your package without any issues following your instructions in the README. Each function also performed as expected, and I even tried them out on my own image and everything still worked great!

Your test coverage is good and I did not get any warnings or errors.

I also liked that you included dependency versions in your README. It made it easy for me to quickly check and update required packages before installing your package.

Suggestions

This section contains some suggestions that you can choose to implement or ignore, depending on your group's preferences and available time.

General:

  • I really liked that the circcropper function displays the image after running. The other functions seem to display a numpy array of the pixel values for the generated image. Time permitting, it would be really nice to have all the other functions have the same functionality as circcropper.
  • It might be helpful to have a description of the function arguments and options in the README. I understand that the information is also available in the readthedocs documentation, so it is up to you whether you think it is overkill to have it duplicated.

Function-specific:

  • redusize I was a little bit surprised by the output of this function. From the description, I was expecting it to output something similar to the results we had in the DSCI 512 seam carving lab, but it seems to just crop the bottom right corner of the image to the desired size. If this is the intended use, then maybe the documentation and descriptions could be updated?
  • reducolor: I noticed you have two style options (0 = black and white, and 1 = 8 colors). Is it possible to allow the user to select the number of colours? This might be too much work and out of scope for the 524 timeline.

Last (very minor) suggestion:

  • you could consider adding a citation information section in your README.md to let others know how you would like to be cited if they use your package.

Closing

Overall, great job. Thanks for letting me review your package. I'll probably use it in the future!

@zoepan00
Copy link

Hi, thank you for your feedback Sakariya(@eyrakas) and Holly(@hwilliams10). We created issues regarding your guys reviews. Please refer to Sakariya feedback and Holly feedback for details tracking how we addressed the suggestions. Please feel free to leave you comments if anything comes up.

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

No branches or pull requests

4 participants