Skip to content
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

Fix parsing of exact-precision floats with a negative exposant #47

Merged
merged 1 commit into from
Aug 5, 2018

Conversation

bfontaine
Copy link
Collaborator

As long as the e_value is positive, the code works because pow returns an int. If it’s negative, pow returns a float, and the Decimal*float operation fails because * isn’t defined for these types. Using Decimals for both operands fixes that.

@bfontaine bfontaine merged commit bf69bb3 into swaroopch:master Aug 5, 2018
@bfontaine bfontaine deleted the fix-decm branch August 5, 2018 09:41
gabrielferreira95 added a commit to nubank/edn_format that referenced this pull request Nov 25, 2019
* Convert requirements from exact to minimum

Fixes swaroopch#40

* Bump version to 0.5.13

* LICENSE: bump year

* Fix ambiguous variable name (swaroopch#44)

* Add a Changelog

* Fix parsing of exact-precision floats with a negative exposant (swaroopch#47)

* Accept missing printable ASCII chars (swaroopch#45)

* Add a sort_sets optional keyword argument to dump (swaroopch#42)

* add failing unit test

* add ImmutableList

* use ImmutableList on code

* fix latin

* conform to flake8

* add test

* add placeholder file

* workaround for limitation on the image downstream

* remove conda.txt file

* add docstring

* descend from Sequence instead of MutableSequence

* copy explicitly

* remove MutableSequence tests

* bump version

* fix formatting

* use copy.copy()

as .copy() is not available for lists on python2

* remove redundant tests

* simplify condition

* Raise custom exceptions on syntax errors (swaroopch#46)

* Add CONTRIBUTING.md (swaroopch#48)

* Handle fractions

edn-format/edn#64

* Handle #_

Fixes #4.

Note it doesn’t support top-level #_ usage such as in:

    foo #_ bar

* Add tests for #_

* Tweak README regarding caveats + mention @bfontaine contributor

* Bump version to 0.6.0

Thanks @bfontaine and @konr!

* Add v0.6.0 to the Changelog

* Run Travis tests on latest Python 3.7

* Use dist: xenial

* Use mutable data structures to improve parsing time

Previously a list was used to hold the intermediate results during
parsing of "expressions", but each expression was prepended by
copying, Fixing this takes parsing from quadratic to linear time.

* Bump version to 0.6.1

* Update setup.py to 0.6.1

* Various code simplifications (swaroopch#53)

* Parse nil and booleans as symbols (swaroopch#54)

* Add Vagrantfile for local dev

* Use collections.abc instead of collections

Fixes swaroopch#55

* Fix build issues

https://travis-ci.org/swaroopch/edn_format/jobs/475411817

* Fix Python 2.x compatibility

https://travis-ci.org/swaroopch/edn_format/jobs/475413453

* Bump version to 0.6.2

* DRY the requirements

Move from setup.py to only requirements.txt

* Add badge for PyPI version

* add support for unicode char literals

* fixed indentation in test_sort_keys

* combined version_info checks in edn_format/edn_lex.py

Co-Authored-By: LeXofLeviafan <lexofleviafan@gmail.com>

* fixed comment in char token definition

* made changes according to flake8 demands

* Bump version to 0.6.3

* Travis : Upgrade Ubuntu version to latest LTS, bionic

* Use tag signing

* Add an edn_parse.tag decorator, + docs and tests on tags (swaroopch#59)

* Contributor Notes: replace the deprecated commands

* Version 0.6.4

* Move contributor notes in CONTRIBUTING.md (swaroopch#61)

* Add edn_format.loads_all to parse all expressions in a string (swaroopch#60)

* Parse hexadecimal notation

Fixes swaroopch#62.

* Disallow 0-prefixed integers

From the spec:

> No integer other than 0 may begin with 0.

* Release v0.6.5

* Bump version to 0.6.5-nu
gcbeltramini pushed a commit to nubank/edn_format that referenced this pull request Nov 27, 2019
* Convert requirements from exact to minimum

Fixes swaroopch#40

* Bump version to 0.5.13

* LICENSE: bump year

* Fix ambiguous variable name (swaroopch#44)

* Add a Changelog

* Fix parsing of exact-precision floats with a negative exposant (swaroopch#47)

* Accept missing printable ASCII chars (swaroopch#45)

* Add a sort_sets optional keyword argument to dump (swaroopch#42)

* add failing unit test

* add ImmutableList

* use ImmutableList on code

* fix latin

* conform to flake8

* add test

* add placeholder file

* workaround for limitation on the image downstream

* remove conda.txt file

* add docstring

* descend from Sequence instead of MutableSequence

* copy explicitly

* remove MutableSequence tests

* bump version

* fix formatting

* use copy.copy()

as .copy() is not available for lists on python2

* remove redundant tests

* simplify condition

* Raise custom exceptions on syntax errors (swaroopch#46)

* Add CONTRIBUTING.md (swaroopch#48)

* Handle fractions

edn-format/edn#64

* Handle #_

Fixes #4.

Note it doesn’t support top-level #_ usage such as in:

    foo #_ bar

* Add tests for #_

* Tweak README regarding caveats + mention @bfontaine contributor

* Bump version to 0.6.0

Thanks @bfontaine and @konr!

* Add v0.6.0 to the Changelog

* Run Travis tests on latest Python 3.7

* Use dist: xenial

* Use mutable data structures to improve parsing time

Previously a list was used to hold the intermediate results during
parsing of "expressions", but each expression was prepended by
copying, Fixing this takes parsing from quadratic to linear time.

* Bump version to 0.6.1

* Update setup.py to 0.6.1

* Various code simplifications (swaroopch#53)

* Parse nil and booleans as symbols (swaroopch#54)

* Add Vagrantfile for local dev

* Use collections.abc instead of collections

Fixes swaroopch#55

* Fix build issues

https://travis-ci.org/swaroopch/edn_format/jobs/475411817

* Fix Python 2.x compatibility

https://travis-ci.org/swaroopch/edn_format/jobs/475413453

* Bump version to 0.6.2

* DRY the requirements

Move from setup.py to only requirements.txt

* Add badge for PyPI version

* add support for unicode char literals

* fixed indentation in test_sort_keys

* combined version_info checks in edn_format/edn_lex.py

Co-Authored-By: LeXofLeviafan <lexofleviafan@gmail.com>

* fixed comment in char token definition

* made changes according to flake8 demands

* Bump version to 0.6.3

* Travis : Upgrade Ubuntu version to latest LTS, bionic

* Use tag signing

* Add an edn_parse.tag decorator, + docs and tests on tags (swaroopch#59)

* Contributor Notes: replace the deprecated commands

* Version 0.6.4

* Move contributor notes in CONTRIBUTING.md (swaroopch#61)

* Add edn_format.loads_all to parse all expressions in a string (swaroopch#60)

* Parse hexadecimal notation

Fixes swaroopch#62.

* Disallow 0-prefixed integers

From the spec:

> No integer other than 0 may begin with 0.

* Release v0.6.5

* Merge with upstream

* Remove repeated tests

* Undo some changes after the merge

* Fix regex for t_FLOAT

* Add more test cases

* Refactor t_FLOAT regex
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

Successfully merging this pull request may close these issues.

None yet

1 participant