Releases: amogh7joshi/chemsolve
chemsolve v1.8.3
This version fixes a major issue in that Compound.from_formula
was unable to perform calculations for the molecular formula of a compound.
chemsolve v1.8.2
This version improves error raising and traceback in the library. Specifically, invalid element names passed to the Element
class will now raise an appropriate InvalidElementError
as opposed to an IndexError
by the periodic table, and the Reaction.from_string
method now raises an InvalidReactionError
rather than a ValueError
.
chemsolve v1.8.1
This version update adds all of the different Chemsolve errors to the top-level module, since all of them were originally not imported in chemsolve/__init__.py
.
chemsolve v1.8.0
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 usesreactants
andproducts
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
andlist_strong_bases
. - The
Gas
object from thechemsolve.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.
chemsolve v1.7.0
This update to Chemsolve focuses on new features and updates to existing classes, as well as major reworkings of the internals of the Element, Compound, and Reaction classes, and finally the beginning of preparation for v2.0.0 (some point in a few months or so).
Major Features:
- Added the ability to create Element classes from a provided electron configuration or molar mass.
- Added the
SolutionCompound
class, similar to theCompound
class but allows initialization through volume or molarity, and charge/state values. - Added the ability to determine whether a certain compound is in a reaction, or an element is within a compound (through the
__contains__
magic method). - Added the
chemsolve.physics
module with a few functions (namely kinetic and potential energy calculations).
Transitional Features and Bug Fixes:
- Added deprecations for classes which will be removed in v2.0.0, primarily
CombustionTrain
,FormulaCompound
,SpecialElement
, now you will get a warning whenever you use them. - Migrated the functionalities of the
SpecialElement
class to theElement
class. - Added transitional
Compound.from_formula
method andReaction.from_combustion
to replace theCompound.fromFormula
andReaction.fromCombustion
methods, respectively. - Update the
molarity
method to accept aSolutionCompound
rather than individual keyword arguments for moles/volume/molarity.
In addition, updated a lot of the internal workings of the Compound
and Reaction
classes, to improve class functionality, the most visible of which is a fixed display error when calling Reaction.fromCombustion().main_reactant
.
chemsolve v1.6.0
This update adds the IdealGas
class, which is able to perform basic PV=nRT
calculations. In addition, a number of new methods have been added including:
- Unit conversion for pressure. Convert between atm, psi, bar, Pa, etc.
- Unit conversion for temperature. Convert between Celsius, Farenheit, and Kelvin.
- Basic molarity calculations, when mole amounts and volume are provided.
In addition, each module has been updated to include an __all__
variable, such that you can now run
from chemsolve import *
and get all the functionalities of the library.
chemsolve v1.5.0
New Features: Implementation of the photoelectric effect and energy calculations through changes in energy levels, and addition of periodic trends to the Element class.
In addition:
- Removed dependencies on the periodictable library for the Element class, now using a Periodic Table csv file. Removed the attribute gathering methods and put a direct access implementation for the class attributes.
- Added a great number of string operations to gather indexes and determine charges.
- Implemented them into a basic redox reaction, which at the moment can calculate the oxidization numbers of the elements in the elements and products, and create the oxidation and reduction half-reaction.
chemsolve v1.4.6
Changed to use a CSV file containing periodic table data instead of the periodictable module.
(Once again, skipped a couple of versions which contained bugs. This time, though, they don't exist on PyPi either)
chemsolve v1.4.3
Fixed all issues involving the Reaction.fromCombustion method.
(v1.4.2 was adding init files, skipped directly to v.1.4.3).
chemsolve v1.4.1
Changed the "electrochemistry" directory to "solutions", patched errors within it.