This version introduces the `chemsolve.ranking` module, with 4 new methods to rank elements based on different properties: atomic radius, electronegativity, first ionization energy, and electron affinity.
This version also adds proper error methods, including `ChemsolveError`, `InvalidChemistryArgumentError`, and its subclasses for elements, compounds, and reactions. If you want to use a try/except loop when working with chemical objects, you can import these methods directly from chemsolve, e.g. `from chemsolve import InvalidCompoundError`.
In addition, the `chemsolve.solutions` module has been updated with calculation methods for pH and pOH, both from hydronium and hydroxide (for each). Following the release of v2.0.0, this module will see further changes, but expect some more smaller additions in v1.9.0 as well.
**Additional Changes**:
- The `Reaction` class now uses `reactants` and `products` keyword arguments instead of just `*args`, although `*args` will continue to work for the time being it has been deprecated and will be removed in v2.0.0, start using the new functionality now.
- You can now create reactions directly from strings, through the `Reaction.from_string` method. More information about its specific usage can be found in its docstring.
- The top-level `chemsolve` module now has two new methods, `list_strong_acids` and `list_strong_bases`.
- The `Gas` object from the `chemsolve.gases` module now has better internal functionalities, so it is more useful for actual computation.
New information has been added pertaining to v2.0.0 in the FUTUREVERSION.md file, which can be found [here](https://github.com/amogh7joshi/chemsolve/blob/master/FUTUREVERSION.md).