In [1]:
from pycalphad import Database
from pycalphad.tests.datasets import DIFFUSION_TDB, ALFE_TDB, ALNIPT_TDB

In [2]:
dbf = Database(ALNIPT_TDB)

In [3]:
other = Database.from_string(dbf.to_string(fmt='tdb'), fmt='tdb')

print(dbf.phases.keys() == other.phases.keys())
for phase in dbf.phases.keys():
    if dbf.phases[phase] != other.phases[phase]:
        print(phase + ' differs')
    else:
        print(phase + ' eq')


True
PT2AL3 eq
AL3NI5 eq
ALPT eq
AL3NI2 eq
ALPT2 eq
PT5AL21 eq
FCC_L12 eq
FCC_A1 eq
BCC_B2 eq
AL3NI1 eq
PT2AL eq
LIQUID eq
PT8AL21 eq
PT5AL3 eq

In [4]:
dbf == other


Out[4]:
True

In [5]:
def param_sort_key(x):
    return x['phase_name'], x['parameter_type'], x['constituent_array'], x['parameter_order'], x['diffusing_species']

self_params = sorted(dbf._parameters.all(), key=param_sort_key)
other_params = sorted(other._parameters.all(), key=param_sort_key)
self_params == other_params
for s, o in zip(self_params, other_params):
    if s != o:
        if s['parameter'] != o['parameter']:
            print('params differ')
            print('self', s['parameter'])
            print('other', o['parameter'])
    else:
        print('eq')


eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq
eq

In [6]:
one = sorted(self_params[0].items(), key=operator.itemgetter(0))


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-6-6fa973bf34f8> in <module>()
----> 1 one = sorted(self_params[0].items(), key=operator.itemgetter(0))

NameError: name 'operator' is not defined

In [ ]:
two = sorted(other_params[0].items(), key=operator.itemgetter(0))

In [ ]:
one == two

In [ ]:
one[2][1]

In [ ]:
two[2][1]

In [ ]:
one[2][1].args[1].args[1] == two[2][1].args[1].args[1]

In [ ]:
import numpy as np
np.array(one[2][1].args[1].args[0], dtype=np.longdouble)

In [ ]:
np.array(two[2][1].args[1].args[0], dtype=np.longdouble)

In [ ]:
from sympy import sympify
sympy.evaluate.global_evaluate = False
sympify('ln(-5.01E-4, evaluate=False)', evaluate=False).__class__

In [ ]:
sympify('ln(x)', evaluate=False).xreplace({'x': 5.01E-4})

In [ ]:
sympy.S(5.01e-4).__class__

In [ ]: