The package has one function:

IsValidLength (dim) which accepts integer argument dim and returns True if that length is acceptable for the algorythm (dim == 4*2**n*3**m; n,m >= 0) or False if doesn't

And one class FastFourierTransformer which has
one public member:
SinTbl - array.array of double with total number of elements N (defined in the class's constructor), where element k is equal sin (2*PI*k/N)

and the following public functions:

Constructor __init__ (length) which accepts lenght of the data serieses

IsValidObject () which returns True if the requested length is allowed or False if not

GetSize() which returns that length

GetAmplSize () - returns length of amplitude and phase spectrums (equal to length/2 + 1)

CalculateFourierCoefficients (data) which returns (success_flag, FX_Coeffs), where success_flag is flag of success and F_Coeffs is a list of size length, contains sinus and cosinus coeffitients those packed in the internal format
data is a list of size length for which content the coefficients will be calculated

BuildFullCosSinCoeffs (FX_Coeffs) - returns (success_flag, cos_coeffs, sin_coeffs) where cos_coeffs and sin_coeffs are lists (size length) of cosinus and sinus Fourier coefficients respectivly
FX_Coeffs - list of Fourier coefficients, that was calculated by function CalculateFourierCoefficients

ReverseFourierTransformation (cos_coeffs, sin_coeffs) - returns (success_flag, restored_sequence) based on its cosinusand sinus coeffitients
and ReverseFourierTransformation_by_coeffs (FX_coeffs) - the same based on FX_coeffs

BuildAmplitudeSpectrum (FX_coeffs) - returns (success_flag, Amplitude_spectrum, Phase_sectrum) based on FX_coeffs

BuildCrossFourierCoefficients (FX_coeffs, FY_coeffs) - returns cross Fourier coefficients base on coeffitients of two series
For example, covariance of two series x,y is the reverse transformation of the cross coeffitionts

Please find example of library's usage at test_fft.py and example of input data for the test at input.csv
