2.2.2.4 Sympy. Time used: 6.677 (sec). Leaf size: 56
from sympy import * 
x = symbols("x") 
y = Function("y") 
ode = Eq(sqrt((1 - y(x)**2)/(1 - x**2)) + Derivative(y(x), x),0) 
ics = {} 
dsolve(ode,func=y(x),ics=ics)
 
\begin{gather*} \begin {aligned} - \begin {cases} 0 & \text {for}\: y{\left (x \right )} > -1 \wedge y{\left (x \right )} < 1 \end {cases} + \log {\left (\sqrt {y^{2}{\left (x \right )} - 1} + y{\left (x \right )} \right )} + \frac {\int \sqrt {\frac {y^{2}{\left (x \right )} - 1}{x^{2} - 1}}\, dx}{\sqrt {\left (y{\left (x \right )} - 1\right ) \left (y{\left (x \right )} + 1\right )}} = C_{1} \end {aligned} \end{gather*}
Python version: 3.12.3 (main, Aug 14 2025, 17:47:21) [GCC 13.3.0] 
Sympy version 1.14.0
 
classify_ode(ode,func=y(x)) 
 
('factorable', '1st_exact', '1st_power_series', 'lie_group', '1st_exact_Integral')