Giter VIP home page Giter VIP logo

plusminus's Issues

Incorrect Boolean evaluation

The result of below code evaluation should be true, but it returns False instead.

from plusminus import BaseArithmeticParser

parser = BaseArithmeticParser()
parser.evaluate('False or False or True')

Deserialization Bug

I'm trying to use this project in a spark distributed environment, but encountered a "RecursionError: maximum recursion depth exceeded". After some debugging, I found this is because the parser and parsed_rule can not be de-serialized.

Below is a sample code to reproduce the error:

import cloudpickle
from plusminus import ArithmeticParser

parser = ArithmeticParser()
parsed_res = parser.parse(' A + B')
parsed_pair = cloudpickle.dumps((parser, parsed_res))
parser, parsed_res = cloudpickle.loads(parsed_pair)

More variances in variable names

Hi,

Thanks for your great work on pyparsing and plusminus.

I am searching for a parser working on pandas Series with variables.
This looks to work out of the box with plusminus (mapping all series of a dataframe to variables)
For a 1:1 adaption it would be fine to have a different identifier definition.

As the data columns i am working (they come from external CSV) on may contain spaces i would like to define a variable as

var_name = pp.QuotedString('[', endQuoteChar=']').setName("identifier")

which currently requires a copy and paste of your library.

Christoph

Refactor parsers to separate Python eval() features from standard Arithmetic features

plusminus is a project of 2 minds:

  • being a safe alternative to Python eval()
  • implementing common arithmetic notations and operations, often using Unicode operators or notation that are not supported in Python (such as |x| for abs(x))

These two goals should be split into separate parser classes, so that "programming-ish" concepts do not necessarily bleed over into arithmetic notations, and arithmetic expressions like |x| are not included in safe Python eval() support.

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.