Giter Site home page Giter Site logo

future of burrito? about burrito HOT 4 OPEN

biocore avatar biocore commented on June 12, 2024
future of burrito?

from burrito.

Comments (4)

wasade avatar wasade commented on June 12, 2024

@RNAer has been doing some very cool replacement work with dumpling...

from burrito.

ElDeveloper avatar ElDeveloper commented on June 12, 2024

From an email I sent to the qiime-developers ML:

Hello,

Rob, Jose N, Antonio, Zech, Jamie and me talked about using Dumpling, as
a replacement of burrito, these are a few points we would like to
highlight.

Dumpling has the following advantages:

  1. Saves boiler-plate code when writing fillings.

  2. "Cleaner" design, especially for app parameters.

    1. condense all burrito param types into 2 types: argument and option, as defined in linux command and explained by click doc (http://click.pocoo.org/6/parameters/)

    2. users can give a semantic, meaningful name to a parameter, making code more readable in the context of the app wrapped.

    3. the parameter name can be passed as keyword argument to a function directly to set the parameter of a wrapper. This is critical, because you can easily pass the same variable, for example, the number of cpu cores, to functions calling different apps.

    There are other improvements, like you don't need to wrap a file
    path in quotes like you do in burrito. etc.

  3. Uses subprocess (with shell=False), instead of os.system to call the executables, which is more secure. And user don't need to worry about the weird characters in the parameter.

  4. Better documentation and tests. numpydoc string doc. doctests illustrates examples of frequent use cases.

Dumpling, has a few big differences compared to Burrito:

1.- Applications are all instances of the same class, except with different parameters. This can be problematic from the point of view of a "dumpling filling", the exposed API/object is an instance, not a class. This problem, however can be circumvented if a bit of the API in the Dumpling class is changed, or if we use "factory" wrappers that act like classes.

2.- One of the reasons why it was hard to use Burrito, was the lack of an update method, this method is available in Dumpling, so maybe adding it to Burrito would be a good thing to consider doing if we were to keep some of that code around.

For a concise example, please have a look at the notebook below where you can see a side by side comparison of the implementation of a

https://github.com/RNAer/dumpling/blob/master/examples/dumpling_burrito.ipynb

Thanks!

from burrito.

RNAer avatar RNAer commented on June 12, 2024

if the decision is to move forward with dumpling code base, I can take over
the primary role of maintainer if nobody else volunteers.

On Wed, May 4, 2016 at 9:37 AM, Yoshiki Vázquez Baeza <
[email protected]> wrote:

From an email I sent to the qiime-developers ML:

Hello,

Rob, Jose N, Antonio, Zech, Jamie and me talked about using Dumpling, as

a replacement of burrito, these are a few points we would like to

highlight.

Dumpling has the following advantages:

Saves boiler-plate code when writing fillings.
2.

"Cleaner" design, especially for app parameters.

  1. condense all burrito param types into 2 types: argument and option,
    as defined in linux command and explained by click doc (
    http://click.pocoo.org/6/parameters/)

  2. users can give a semantic, meaningful name to a parameter, making
    code more readable in the context of the app wrapped.

  3. the parameter name can be passed as keyword argument to a function
    directly to set the parameter of a wrapper. This is critical, because you
    can easily pass the same variable, for example, the number of cpu cores, to
    functions calling different apps.

There are other improvements, like you don't need to wrap a file

path in quotes like you do in burrito. etc.
3.

Uses subprocess (with shell=False), instead of os.system to call the
executables, which is more secure. And user don't need to worry about the
weird characters in the parameter.
4.

Better documentation and tests. numpydoc string doc. doctests
illustrates examples of frequent use cases.

Dumpling, has a few big differences compared to Burrito:

1.- Applications are all instances of the same class, except with
different parameters. This can be problematic from the point of view of a
"dumpling filling", the exposed API/object is an instance, not a class.
This problem, however can be circumvented if a bit of the API in the
Dumpling class is changed, or if we use "factory" wrappers that act like
classes.

2.- One of the reasons why it was hard to use Burrito, was the lack of an
update method, this method is available in Dumpling, so maybe adding it to
Burrito would be a good thing to consider doing if we were to keep some of
that code around.

For a concise example, please have a look at the notebook below where you
can see a side by side comparison of the implementation of a

https://github.com/RNAer/dumpling/blob/master/examples/dumpling_burrito.ipynb

Thanks!


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#16 (comment)

from burrito.

gregcaporaso avatar gregcaporaso commented on June 12, 2024

from burrito.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.