2.6.5.8 Sympy. Time used: 1.350 (sec). Leaf size: 63
from sympy import * 
x = symbols("x") 
a = symbols("a") 
b = symbols("b") 
y = Function("y") 
ode = Eq(-x*(a*y(x)**2 + b) + Derivative(y(x), x),0) 
ics = {} 
dsolve(ode,func=y(x),ics=ics)
 
\begin{gather*} \begin {aligned} - \frac {x^{2}}{2} - \frac {\sqrt {- \frac {1}{a b}} \log {\left (- b \sqrt {- \frac {1}{a b}} + y{\left (x \right )} \right )}}{2} + \frac {\sqrt {- \frac {1}{a b}} \log {\left (b \sqrt {- \frac {1}{a b}} + y{\left (x \right )} \right )}}{2} = 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)) 
 
('separable', '1st_exact', '1st_power_series', 'lie_group', 'separable_Integral', '1st_exact_Integral')