Skip to content

Releases: jagerber48/sciform

0.32.3

12 Jan 06:57
1d8e287
Compare
Choose a tag to compare

0.32.3 (2024-01-11)

Added

  • Added more PyPi classifiers.

0.32.2

12 Jan 06:33
621a1ef
Compare
Choose a tag to compare

0.32.2 (2024-01-11)

Added

  • Expanded the "Under Construction" section of the readme and the "How to Contribute" section of the project page. Changes included adding links to the sciform feedback survey.
  • Added examples in the documentation demonstrating how sciform formatting can be mapped over collections of numbers. [#120 <https://github.com/jagerber48/sciform/issues/120>_]

Changed

  • Refactor backend mode literal (used for typing) and enum (used internally for tracking options) object names so that e.g. SignMode -> SignModeEnum and UserSignMode -> SignMode. [#111 <https://github.com/jagerber48/sciform/issues/111>_]

0.32.0

10 Jan 10:03
d03eedf
Compare
Choose a tag to compare

0.32.0 (2024-01-10)

Added

  • Previously it was impossible to configure pdg_sig_figs=True together with ndigits!=AutoDigits. This combinations resulted in an exception. Now behavior has been defined and implemented for this combination. For single value formatting the value of pdg_sig_figs is always ignored. For value/uncertainty formatting ndigits is ignored if pdg_sig_figs=True. The behavior for pdg_sig_figs=False is unchanged. [#73]

Removed

  • [BREAKING] Removed global_add_c_prefix, global_add_small_si_prefixes, global_add_ppth_form, global_reset_si_prefixes, global_reset_iec_prefixes, and global_reset_parts_per_forms. These options are redundant with set_global_defaults and GlobalDefaultsContext and make the extra translations dictionaries more confusing to understand. [#97]

Changed

  • [BREAKING] Previously 12.3 would format as "12.3e+00" when using parts per formatting mode. Now, when using parts per formatting mode, the e+00 exponent is translated to be an empty string so that 12.3 would format as "12.3". [#99]

0.31.1

07 Jan 04:02
5aac95c
Compare
Choose a tag to compare

0.31.1 (2024-01-06)

Removed

  • [BREAKING] Removed the SciNumUnc class. Now the SciNum class can be used with an optional second positional argument to specify the uncertainty associated with a number.

  • [BREAKING] Remove separator configuration from the FSML. These options made the FSML to cumbersome and led to confusing (if not incorrect) conflicts with the round mode symbol. Now all separator configuration needs to be done by setting the global format options or using the global format options context manager. [#29]

Added

  • Added annotated examples demonstrating the FSML.
  • Added more documentation for contributing developers.
  • Added `pre-commit (https://pre-commit.com/) configuration.

Changed

  • [BREAKING] Renamed multiple options.

    • top_dig_place renamed to left_pad_dec_place.
    • superscript_exp renamed to superscript.
    • bracket_unc renamed to paren_uncertainty.
    • bracket_unc_remove_seps renamed to
      paren_uncertainty_separators. This change is associated with a
      a reversal of the Boolean logic on the option.
    • val_unc_match_widths renamed to left_pad_matching.
    • unc_pm_whitespace renamed to pm_whitespace.
  • [BREAKING] Previously specifying any left pad decimal place using the sciform FSML resulted in setting left_pad_matching=True so that print(f"{SciNum(123.456, 0.789):0}") resulted in "123.456 ± 000.789". Now the FSML has no impact on left_pad_matching. Now, similar to many other options, the global setting for left_pad_matching will always be used when formatting using the FSML. Under the default global options (left_pad_matching=False) print(f"{SciNum(123.456, 0.789):0}") results in "123.456 ± 0.789".

  • Implemented ruff linting and formatting in codebase and integration automation.

  • Refactored code for adding separators.

  • Refactored formatting and formatting utilities to simplify functions and make the algorithm easier to follow.

  • More aggressively filter JetBrains .idea/ folder from version control.

Fixed

  • Fixed a bug involving removing separators in parentheses uncertainty mode when at least one of the value and uncertainty were non-finite.
  • Fixed a typo that prevented pushing 0.31.0 readme to pypi.

0.30.1

24 Nov 21:57
0efb387
Compare
Choose a tag to compare

0.30.1 (2023-11-24)

Fixed

  • Fixed Changelog.

0.30.0

24 Nov 21:04
601e212
Compare
Choose a tag to compare

0.30.0 (2023-11-24)

Changed

  • [BREAKING] Remove the FormatOptions class from the user interface. Now users configure Formatter instances by passing the formatting keyword arguments into the Formatter constructor directly. Global configuration via set_global_defaults() or the GlobalDefaultsContext is also done by passing formatting keywords directly. This change reduces the amount of boilerplate code and keystrokes needed to use sciform.
  • [BREAKING] Options such as exp_mode and exp_format were previously configured using Enum objects such as ExpMode or ExpFormat. Now these options are configured using string literals. This change also reduces the amount of boilerplate code and keystrokes needed to use sciform.
  • Clean up print_global_defaults output. This is the start of an effort to improve interface for getting and printing current format options.

Added

  • Added code of conduct.
  • Added contributing guidelines.
  • Added Python 3.12 to automated testing.

Fixed

  • Cleaned up API documentation.
  • Fixed a bug where the repr for FormatOptions would return a string containing information about the global format options rather than about the specific FormatOptions instance. [#75]
  • Fixed an issue that was causing Github actions code coverage report to not actually check code coverage. [#84]

Removed

  • [BREAKING] Removed the unicode_pm feature which allowed toggling between using '+/-' or '±' in value/uncertainty strings. Previously unicode_pm defaulted to False so that '+/-' was the default behavior. Now the default behavior is to use '±' and there is no way to change to the old '+/-' behavior. [#10]

0.29.1

23 Oct 05:58
5385f4a
Compare
Choose a tag to compare

0.29.1 (2023-10-22)

Fixed

  • Fixed a bug where bracket uncertainties erroneously appeared as empty parentheses for zero or non-finite uncertainties. [#66 ]
  • Fixed a bug where the exponent value was erroneously calculated from the uncertainty rather than the value when the value was negative (but larger in magnitude than the uncertainty). [#68 ]
  • Fixed a bug where certain leading digits were erroneously not stripped from the uncertainty when using bracket uncertainty with negative values. [#68]
  • Fixed a bug where the value was erroneously being rounded according to the PDG rounding rules when pdg_sig_figs=True, the uncertainty was zero or non-finite, and the value was positive. [#71]
  • Fixed a bug where a spurious error was raised when pdg_sig_figs=True, the uncertainty was zero or non-finite, and the value was zero or negative. [#65 ]

Changed

  • Replace -e . with . in requirements.txt. There is no need to install sciform in editable mode for code automation routines.

0.29.0

05 Sep 13:00
4bd00ee
Compare
Choose a tag to compare

0.29.0 (2023-09-05)

Changed

  • Previously, when using bracket_unc=True with any exponent string (such as e-06, μ or ppm), the value and uncertainty were always wrapped in parentheses, e.g. (1.03(25))e-06, (1.03(25)) μ or (1.03(25)) ppm. Now, when using bracket_unc=True with prefix or parts-per exponent format modes, if the exponent is replaced with an alphabetic replacement, then the value and uncertainty are no longer wrapped in parentheses, e.g. 1.03(25) μ and 1.03(25) ppm. This is consistent with BIPM Guide Section 7.2.2 <https://www.bipm.org/documents/20126/2071204/JCGM_100_2008_E.pdf/cb0ef43f-baa5-11cf-3f85-4dcd86f77bd6#page=37>_. Specifically, any time bracket_unc=False the value and uncertainty are always wrapped in parentheses, and any time notation like e+02 or b+02 is used to indicate the exponent then the value and uncertainty are always wrapped in parentheses.

Fixed

  • Correct fit_plot_with_sciform.py example script to use new exp_format=ExpFormat.PREFIX instead of old prefix_exp=True.

Improved

  • Documentation improvements including typos and neatening up changelog.

0.28.2

31 Aug 06:18
f8c1c28
Compare
Choose a tag to compare

0.28.2 (2023-08-31)

Improved

  • General wording and grammar improvements throughout documentation.
  • Include more usage examples in the examples documentation in addition to referring the reader to the test suite.

Fixed

  • Fixed a bug when using pdg_sig_figs with uncertainties larger than about 1000 by cleaning up Decimal math.
  • Previously, when formatting using the format specification mini-language, if the prefix exponent format flag was omitted then the exponent format was forced to ExpFormat.STANDARD rather than None. This meant that it was impossible, using the format specification mini-language combined with global configuration options, to set ExpFormat.PARTS_PER. Now when the prefix flag is omitted exp_format is set to None so that it will be populated by the global default option. In the future a flag may be added to select "parts-per" formatting using the format specification mini-language.

0.28.1

28 Aug 06:17
d058ef0
Compare
Choose a tag to compare
  • Make FormatOptions inputs Optional so that None inputs
    pass type checks.
  • Write format-specification mini-language documentation to refer to
    existing format options documentation to avoid documentation
    duplication.
  • Setup test coverage analysis automation and upload report to
    codecov <https://codecov.io/gh/jagerber48/sciform>_.
  • Add package status badges to readme.
  • Test against Python 3.11.
  • List supported Python versions in pyproject.toml classifiers.