Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Importing scikit-rf imports many modules and is slow #1057

Open
jhillairet opened this issue Apr 30, 2024 · 5 comments · May be fixed by #1065
Open

Importing scikit-rf imports many modules and is slow #1057

jhillairet opened this issue Apr 30, 2024 · 5 comments · May be fixed by #1065
Labels
Improvements Improvements of existing feature

Comments

@jhillairet
Copy link
Member

Issue created following this post on reddit.

The number of modules imported in the namespace when importing scikit-rf is quite large and can take quite some times.

Just importing skrf.constants imports PIL, scipy, matplotlib, pandas, and all of the skrf modules, and generally takes about 1 second to complete (where numpy takes around 150 ms).

Here's an example showing the difference between numpy import and skrf imports. First, here's numpy as a baseline.

numpy

from time import perf_counter
import sys

tic = perf_counter()
from numpy import array

print ("numpy import: ", perf_counter() - tic)
print (list(sorted(sys.modules.keys())))

numpy import: 0.13497460004873574

List of imported modules.

scikit-rf

from time import perf_counter
import sys

tic = perf_counter()
from skrf.constants import c

print ("SKRF import: ", perf_counter() - tic)

print (list(sorted(sys.modules.keys())))

With the result:

SKRF import: 1.014745100052096

List of imported modules

@jhillairet jhillairet added Feature Request Wished Feature Improvements Improvements of existing feature and removed Feature Request Wished Feature labels Apr 30, 2024
@cafeclimber
Copy link
Contributor

cafeclimber commented May 2, 2024

It seems we are not the only ones discussing the issue of lazy loading modules while maintaining the ergonomics of e.g. import skrf as rf by re-exposing all of the modules in the main library __init__.py. They refer to this document discussing lazy-loading. I wonder if an audit of the libraries we use to attempt to limit the dependencies we have, or deferring some imports to the function level as needed would be the way to go

@cafeclimber
Copy link
Contributor

cafeclimber commented May 2, 2024

Here's a breakdown of where the import times are coming from.

(This is the command used to get this):

$ python -X importtime perf.py 2> import.log

where the contents of perf.py are simply import skrf

import time: self [us] | cumulative | imported package
import time:       232 |        232 |   _io
import time:        52 |         52 |   marshal
import time:       475 |        475 |   posix
import time:       722 |       1480 | _frozen_importlib_external
import time:       112 |        112 |   time
import time:       235 |        347 | zipimport
import time:        60 |         60 |     _codecs
import time:       599 |        659 |   codecs
import time:       389 |        389 |   encodings.aliases
import time:      1309 |       2356 | encodings
import time:       238 |        238 | encodings.utf_8
import time:       103 |        103 | _signal
import time:        62 |         62 |     _abc
import time:       371 |        432 |   abc
import time:       351 |        783 | io
import time:        60 |         60 |       _stat
import time:       245 |        304 |     stat
import time:      1039 |       1039 |     _collections_abc
import time:       123 |        123 |       genericpath
import time:       228 |        351 |     posixpath
import time:       691 |       2383 |   os
import time:       147 |        147 |   _sitebuiltins
import time:       179 |        179 |     __future__
import time:       185 |        364 |   _virtualenv
import time:       168 |        168 |   _distutils_hack
import time:       242 |        242 |   types
import time:       256 |        256 |       warnings
import time:       215 |        471 |     importlib
import time:       204 |        204 |     importlib._abc
import time:       104 |        104 |         itertools
import time:       170 |        170 |         keyword
import time:        60 |         60 |           _operator
import time:      1452 |       1512 |         operator
import time:       193 |        193 |         reprlib
import time:        74 |         74 |         _collections
import time:       784 |       2835 |       collections
import time:        50 |         50 |         _functools
import time:       456 |        506 |       functools
import time:       503 |       3843 |     contextlib
import time:       370 |       4887 |   importlib.util
import time:       128 |        128 |   importlib.machinery
import time:       158 |        158 |     apport_python_hook
import time:       181 |        339 |   sitecustomize
import time:      3609 |      12264 | site
import time:       576 |        576 |             enum
import time:        62 |         62 |               _sre
import time:       264 |        264 |                 sre_constants
import time:       295 |        558 |               sre_parse
import time:       256 |        875 |             sre_compile
import time:        65 |         65 |             _locale
import time:       287 |        287 |             copyreg
import time:       468 |       2269 |           re
import time:       247 |        247 |             _json
import time:       376 |        622 |           json.scanner
import time:       383 |       3273 |         json.decoder
import time:       412 |        412 |         json.encoder
import time:       260 |       3944 |       json
import time:       196 |        196 |           _weakrefset
import time:       342 |        537 |         weakref
import time:        84 |         84 |             org
import time:        15 |         98 |           org.python
import time:        15 |        112 |         org.python.core
import time:       206 |        854 |       copy
import time:       294 |        294 |       numbers
import time:      1193 |       1193 |       textwrap
import time:       104 |        104 |           numpy._utils
import time:       274 |        377 |         numpy._globals
import time:       181 |        181 |         numpy.exceptions
import time:        97 |         97 |         numpy._distributor_init
import time:       113 |        113 |         numpy.__config__
import time:        87 |         87 |             numpy._version
import time:        34 |         34 |             numpy._version_meson
import time:       131 |        251 |           numpy.version
import time:       150 |        150 |               numpy._utils._inspect
import time:        79 |         79 |                   math
import time:       649 |        649 |                   _datetime
import time:       957 |       1684 |                 datetime
import time:       316 |        316 |                 numpy.core._exceptions
import time:       152 |        152 |                 numpy.dtypes
import time:      6636 |       8786 |               numpy.core._multiarray_umath
import time:       894 |       9829 |             numpy.core.overrides
import time:       565 |      10394 |           numpy.core.multiarray
import time:       233 |        233 |           numpy.core.umath
import time:       177 |        177 |             numpy.core._string_helpers
import time:       330 |        330 |                     fnmatch
import time:       132 |        132 |                       _winapi
import time:       123 |        123 |                       nt
import time:       120 |        120 |                       nt
import time:       118 |        118 |                       nt
import time:       114 |        114 |                       nt
import time:       573 |       1178 |                     ntpath
import time:        80 |         80 |                     errno
import time:       204 |        204 |                       urllib
import time:      1031 |       1235 |                     urllib.parse
import time:      1256 |       4077 |                   pathlib
import time:       212 |        212 |                   pickle5
import time:        86 |         86 |                       _struct
import time:       240 |        326 |                     struct
import time:       440 |        440 |                     _compat_pickle
import time:       129 |        129 |                     _pickle
import time:       128 |        128 |                         org
import time:        87 |        214 |                       org.python
import time:        80 |        294 |                     org.python.core
import time:      1160 |       2347 |                   pickle
import time:       277 |       6913 |                 numpy.compat.py3k
import time:       195 |       7107 |               numpy.compat
import time:       206 |        206 |               numpy.core._dtype
import time:       464 |       7776 |             numpy.core._type_aliases
import time:       486 |       8437 |           numpy.core.numerictypes
import time:       189 |        189 |                     collections.abc
import time:       235 |        235 |                       _contextvars
import time:       233 |        468 |                     contextvars
import time:       297 |        953 |                   numpy.core._ufunc_config
import time:       278 |       1230 |                 numpy.core._methods
import time:      1122 |       2351 |               numpy.core.fromnumeric
import time:       691 |       3041 |             numpy.core.shape_base
import time:       594 |        594 |             numpy.core.arrayprint
import time:       199 |        199 |             numpy.core._asarray
import time:      1081 |       4914 |           numpy.core.numeric
import time:      1261 |       1261 |           numpy.core.defchararray
import time:       365 |        365 |           numpy.core.records
import time:       228 |        228 |           numpy.core.memmap
import time:       349 |        349 |           numpy.core.function_base
import time:       200 |        200 |           numpy.core._machar
import time:       315 |        315 |           numpy.core.getlimits
import time:       294 |        294 |           numpy.core.einsumfunc
import time:       279 |        279 |             numpy.core._multiarray_tests
import time:      1664 |       1942 |           numpy.core._add_newdocs
import time:       564 |        564 |           numpy.core._add_newdocs_scalars
import time:       166 |        166 |           numpy.core._dtype_ctypes
import time:        91 |         91 |               _ast
import time:      1343 |       1433 |             ast
import time:       502 |        502 |               _ctypes
import time:       359 |        359 |               ctypes._endian
import time:      1109 |       1968 |             ctypes
import time:      1601 |       5001 |           numpy.core._internal
import time:       187 |        187 |           numpy._pytesttester
import time:      1692 |      36785 |         numpy.core
import time:       307 |        307 |           numpy.lib.mixins
import time:       175 |        175 |               numpy.lib.ufunclike
import time:       444 |        618 |             numpy.lib.type_check
import time:       414 |       1031 |           numpy.lib.scimath
import time:      2345 |       2345 |                     typing
import time:       282 |        282 |                       numpy.lib.stride_tricks
import time:       439 |        720 |                     numpy.lib.twodim_base
import time:       471 |        471 |                     numpy.linalg._umath_linalg
import time:       313 |        313 |                       numpy._typing._nested_sequence
import time:       214 |        214 |                       numpy._typing._nbit
import time:      1401 |       1401 |                       numpy._typing._char_codes
import time:       517 |        517 |                       numpy._typing._scalars
import time:       256 |        256 |                       numpy._typing._shape
import time:      2071 |       2071 |                       numpy._typing._dtype_like
import time:      2650 |       2650 |                       numpy._typing._array_like
import time:       841 |       8260 |                     numpy._typing
import time:      1470 |      13265 |                   numpy.linalg.linalg
import time:       295 |      13559 |                 numpy.linalg
import time:       468 |      14026 |               numpy.matrixlib.defmatrix
import time:       193 |      14219 |             numpy.matrixlib
import time:       315 |        315 |               numpy.lib.histograms
import time:      1277 |       1591 |             numpy.lib.function_base
import time:       541 |      16351 |           numpy.lib.index_tricks
import time:       530 |        530 |           numpy.lib.nanfunctions
import time:       562 |        562 |           numpy.lib.shape_base
import time:       649 |        649 |           numpy.lib.polynomial
import time:      1154 |       1154 |                 signal
import time:      1233 |       1233 |                 threading
import time:        74 |         74 |                 fcntl
import time:       128 |        128 |                 msvcrt
import time:        48 |         48 |                 _posixsubprocess
import time:        72 |         72 |                 select
import time:       605 |        605 |                 selectors
import time:      1148 |       4458 |               subprocess
import time:      3241 |       7699 |             platform
import time:       798 |       8496 |           numpy.lib.utils
import time:       372 |        372 |           numpy.lib.arraysetops
import time:       256 |        256 |             numpy.lib.format
import time:       269 |        269 |             numpy.lib._datasource
import time:       381 |        381 |             numpy.lib._iotools
import time:      1071 |       1975 |           numpy.lib.npyio
import time:       195 |        195 |           numpy.lib.arrayterator
import time:       253 |        253 |           numpy.lib.arraypad
import time:       185 |        185 |           numpy.lib._version
import time:      1113 |      32014 |         numpy.lib
import time:       243 |        243 |             numpy.fft._pocketfft_internal
import time:       593 |        835 |           numpy.fft._pocketfft
import time:       267 |        267 |           numpy.fft.helper
import time:       253 |       1354 |         numpy.fft
import time:       264 |        264 |             numpy.polynomial.polyutils
import time:       511 |        511 |             numpy.polynomial._polybase
import time:       500 |       1273 |           numpy.polynomial.polynomial
import time:       358 |        358 |           numpy.polynomial.chebyshev
import time:       314 |        314 |           numpy.polynomial.legendre
import time:       371 |        371 |           numpy.polynomial.hermite
import time:       331 |        331 |           numpy.polynomial.hermite_e
import time:       315 |        315 |           numpy.polynomial.laguerre
import time:       556 |       3516 |         numpy.polynomial
import time:       133 |        133 |                   backports_abc
import time:       684 |        816 |                 numpy.random._common
import time:        95 |         95 |                     binascii
import time:       460 |        555 |                   base64
import time:      2408 |       2408 |                     _hashlib
import time:        74 |         74 |                       _blake2
import time:       420 |        494 |                     hashlib
import time:       482 |       3384 |                   hmac
import time:        52 |         52 |                       _bisect
import time:       373 |        424 |                     bisect
import time:        53 |         53 |                     _random
import time:        57 |         57 |                     _sha512
import time:       649 |       1182 |                   random
import time:       443 |       5563 |                 secrets
import time:       555 |       6932 |               numpy.random.bit_generator
import time:       280 |        280 |               numpy.random._bounded_integers
import time:       247 |        247 |               numpy.random._mt19937
import time:       914 |       8371 |             numpy.random.mtrand
import time:       258 |        258 |             numpy.random._philox
import time:       251 |        251 |             numpy.random._pcg64
import time:       225 |        225 |             numpy.random._sfc64
import time:       603 |        603 |             numpy.random._generator
import time:       275 |       9980 |           numpy.random._pickle
import time:       248 |      10228 |         numpy.random
import time:       537 |        537 |         numpy.ctypeslib
import time:       226 |        226 |                   _opcode
import time:       509 |        734 |                 opcode
import time:       542 |       1276 |               dis
import time:       270 |        270 |                   token
import time:      1199 |       1469 |                 tokenize
import time:       314 |       1782 |               linecache
import time:      1948 |       5005 |             inspect
import time:      3073 |       8078 |           numpy.ma.core
import time:      1381 |       1381 |           numpy.ma.extras
import time:       372 |       9830 |         numpy.ma
import time:      2762 |      97789 |       numpy
import time:      1183 |       1183 |               scipy._lib._testutils
import time:       306 |       1488 |             scipy._lib
import time:       258 |       1745 |           scipy._lib.deprecation
import time:       593 |        593 |           scipy.__config__
import time:       168 |        168 |           scipy.version
import time:       164 |        164 |           scipy._distributor_init
import time:      3157 |       3157 |           scipy._lib._pep440
import time:       397 |        397 |             scipy._lib._ccallback_c
import time:       277 |        673 |           scipy._lib._ccallback
import time:      5332 |      11829 |         scipy
import time:       263 |        263 |                 scipy.sparse._sputils
import time:       211 |        211 |                 scipy.sparse._matrix
import time:       676 |       1150 |               scipy.sparse._base
import time:       269 |        269 |                 scipy.sparse._sparsetools
import time:       563 |        563 |                   scipy._lib._util
import time:       447 |        447 |                   scipy.sparse._data
import time:       234 |        234 |                   scipy.sparse._index
import time:       568 |       1811 |                 scipy.sparse._compressed
import time:       395 |       2474 |               scipy.sparse._csr
import time:       296 |        296 |               scipy.sparse._csc
import time:       992 |        992 |                 scipy.sparse._csparsetools
import time:       424 |       1415 |               scipy.sparse._lil
import time:       368 |        368 |               scipy.sparse._dok
import time:       333 |        333 |               scipy.sparse._coo
import time:       345 |        345 |               scipy.sparse._dia
import time:       361 |        361 |               scipy.sparse._bsr
import time:       352 |        352 |               scipy.sparse._construct
import time:       165 |        165 |               scipy.sparse._extract
import time:       158 |        158 |               scipy.sparse._matrix_io
import time:      3785 |       3785 |                         scipy.sparse.linalg._isolve._iterative
import time:       543 |        543 |                         scipy.sparse.linalg._interface
import time:       181 |        181 |                         scipy.sparse.linalg._isolve.utils
import time:       788 |        788 |                           scipy._lib.decorator
import time:       333 |       1120 |                         scipy._lib._threadsafety
import time:      2256 |       7884 |                       scipy.sparse.linalg._isolve.iterative
import time:       205 |        205 |                       scipy.sparse.linalg._isolve.minres
import time:       462 |        462 |                               scipy.linalg._fblas
import time:        65 |         65 |                               scipy.linalg._cblas
import time:        50 |         50 |                               scipy.linalg._fblas_64
import time:       667 |       1242 |                             scipy.linalg.blas
import time:      1232 |       1232 |                               scipy.linalg._flapack
import time:        57 |         57 |                               scipy.linalg._clapack
import time:        50 |         50 |                               scipy.linalg._flapack_64
import time:      1588 |       2926 |                             scipy.linalg.lapack
import time:       512 |       4679 |                           scipy.linalg._misc
import time:      1364 |       1364 |                             scipy.linalg.cython_lapack
import time:       532 |       1895 |                           scipy.linalg._cythonized_array_utils
import time:       336 |        336 |                             scipy.linalg._decomp
import time:       197 |        197 |                             scipy.linalg._decomp_svd
import time:       298 |        298 |                             scipy.linalg._solve_toeplitz
import time:       843 |       1672 |                           scipy.linalg._basic
import time:       428 |        428 |                             scipy.linalg._decomp_lu_cython
import time:       530 |        958 |                           scipy.linalg._decomp_lu
import time:       210 |        210 |                           scipy.linalg._decomp_ldl
import time:       196 |        196 |                           scipy.linalg._decomp_cholesky
import time:       206 |        206 |                           scipy.linalg._decomp_qr
import time:       211 |        211 |                           scipy.linalg._decomp_qz
import time:       367 |        367 |                           scipy.linalg._decomp_schur
import time:       179 |        179 |                           scipy.linalg._decomp_polar
import time:       210 |        210 |                             scipy.linalg._expm_frechet
import time:       323 |        323 |                               scipy.linalg._matfuncs_sqrtm_triu
import time:       425 |        748 |                             scipy.linalg._matfuncs_sqrtm
import time:       478 |        478 |                               scipy.linalg.cython_blas
import time:       596 |       1073 |                             scipy.linalg._matfuncs_expm
import time:      1553 |       3583 |                           scipy.linalg._matfuncs
import time:       273 |        273 |                           scipy.linalg._special_matrices
import time:       253 |        253 |                           scipy.linalg._solvers
import time:       183 |        183 |                           scipy.linalg._procrustes
import time:       363 |        363 |                           scipy.linalg._decomp_update
import time:       209 |        209 |                           scipy.linalg._sketches
import time:       215 |        215 |                           scipy.linalg._decomp_cossin
import time:       172 |        172 |                           scipy.linalg.decomp
import time:       167 |        167 |                           scipy.linalg.decomp_cholesky
import time:       170 |        170 |                           scipy.linalg.decomp_lu
import time:       168 |        168 |                           scipy.linalg.decomp_qr
import time:       171 |        171 |                           scipy.linalg.decomp_svd
import time:       163 |        163 |                           scipy.linalg.decomp_schur
import time:       166 |        166 |                           scipy.linalg.basic
import time:       168 |        168 |                           scipy.linalg.misc
import time:       194 |        194 |                           scipy.linalg.special_matrices
import time:       258 |        258 |                               scipy.linalg._flinalg
import time:       318 |        576 |                             scipy.linalg._flinalg_py
import time:       242 |        817 |                           scipy.linalg.flinalg
import time:       192 |        192 |                           scipy.linalg.matfuncs
import time:      4017 |      22203 |                         scipy.linalg
import time:       230 |        230 |                         scipy.sparse.linalg._isolve._gcrotmk
import time:       441 |      22874 |                       scipy.sparse.linalg._isolve.lgmres
import time:       220 |        220 |                       scipy.sparse.linalg._isolve.lsqr
import time:       318 |        318 |                       scipy.sparse.linalg._isolve.lsmr
import time:       188 |        188 |                       scipy.sparse.linalg._isolve.tfqmr
import time:      1428 |      33113 |                     scipy.sparse.linalg._isolve
import time:       253 |        253 |                         scipy.sparse.linalg._dsolve._superlu
import time:       153 |        153 |                           scikits
import time:       159 |        311 |                         scikits.umfpack
import time:      3837 |       4400 |                       scipy.sparse.linalg._dsolve.linsolve
import time:       230 |        230 |                       scipy.sparse.linalg._dsolve._add_newdocs
import time:       529 |       5158 |                     scipy.sparse.linalg._dsolve
import time:       374 |        374 |                           scipy.sparse.linalg._eigen.arpack._arpack
import time:       756 |       1129 |                         scipy.sparse.linalg._eigen.arpack.arpack
import time:       361 |       1489 |                       scipy.sparse.linalg._eigen.arpack
import time:       324 |        324 |                         scipy.sparse.linalg._eigen.lobpcg.lobpcg
import time:       220 |        544 |                       scipy.sparse.linalg._eigen.lobpcg
import time:       239 |        239 |                       scipy.sparse.linalg._eigen._svds
import time:       354 |       2624 |                     scipy.sparse.linalg._eigen
import time:       403 |        403 |                         scipy.sparse.linalg._onenormest
import time:       602 |       1005 |                       scipy.sparse.linalg._expm_multiply
import time:       531 |       1535 |                     scipy.sparse.linalg._matfuncs
import time:       242 |        242 |                     scipy.sparse.linalg._norm
import time:       188 |        188 |                     scipy.sparse.linalg.isolve
import time:       186 |        186 |                     scipy.sparse.linalg.dsolve
import time:       184 |        184 |                     scipy.sparse.linalg.interface
import time:       180 |        180 |                     scipy.sparse.linalg.eigen
import time:       176 |        176 |                     scipy.sparse.linalg.matfuncs
import time:      1475 |      45055 |                   scipy.sparse.linalg
import time:       382 |      45436 |                 scipy.sparse.csgraph._laplacian
import time:       302 |        302 |                     scipy.sparse.csgraph._tools
import time:       354 |        655 |                   scipy.sparse.csgraph._validation
import time:       572 |       1226 |                 scipy.sparse.csgraph._shortest_path
import time:       309 |        309 |                 scipy.sparse.csgraph._traversal
import time:       355 |        355 |                 scipy.sparse.csgraph._min_spanning_tree
import time:       415 |        415 |                 scipy.sparse.csgraph._flow
import time:       471 |        471 |                 scipy.sparse.csgraph._matching
import time:       394 |        394 |                 scipy.sparse.csgraph._reordering
import time:      1182 |      49784 |               scipy.sparse.csgraph
import time:       191 |        191 |               scipy.sparse.base
import time:       187 |        187 |               scipy.sparse.bsr
import time:       184 |        184 |               scipy.sparse.compressed
import time:       192 |        192 |               scipy.sparse.construct
import time:       179 |        179 |               scipy.sparse.coo
import time:       174 |        174 |               scipy.sparse.csc
import time:       177 |        177 |               scipy.sparse.csr
import time:       172 |        172 |               scipy.sparse.data
import time:       174 |        174 |               scipy.sparse.dia
import time:       179 |        179 |               scipy.sparse.dok
import time:       201 |        201 |               scipy.sparse.extract
import time:       184 |        184 |               scipy.sparse.lil
import time:       202 |        202 |               scipy.sparse.sparsetools
import time:       194 |        194 |               scipy.sparse.sputils
import time:      3391 |      63168 |             scipy.sparse
import time:       182 |      63349 |           scipy.sparse.linalg
import time:       243 |        243 |             scipy.optimize._minpack2
import time:       470 |        712 |           scipy.optimize._linesearch
import time:       269 |        269 |             scipy.optimize._group_columns
import time:       461 |        730 |           scipy.optimize._numdiff
import time:       384 |        384 |           scipy.optimize._hessian_update_strategy
import time:       471 |        471 |           scipy.optimize._differentiable_functions
import time:      1588 |      67231 |         scipy.optimize._optimize
import time:       258 |        258 |             scipy.optimize._trustregion
import time:       392 |        649 |           scipy.optimize._trustregion_dogleg
import time:       221 |        221 |           scipy.optimize._trustregion_ncg
import time:       118 |        118 |                       zlib
import time:       363 |        363 |                         _compression
import time:       448 |        448 |                         _bz2
import time:       671 |       1480 |                       bz2
import time:       563 |        563 |                         _lzma
import time:       560 |       1123 |                       lzma
import time:      1230 |       3949 |                     shutil
import time:       829 |       4778 |                   tempfile
import time:       408 |       5185 |                 scipy._lib.messagestream
import time:       611 |       5796 |               scipy.optimize._trlib._trlib
import time:       316 |       6112 |             scipy.optimize._trlib
import time:       319 |       6430 |           scipy.optimize._trustregion_krylov
import time:       284 |        284 |           scipy.optimize._trustregion_exact
import time:       584 |        584 |                       traceback
import time:       360 |        360 |                       unittest.util
import time:       676 |       1619 |                     unittest.result
import time:        72 |         72 |                           _heapq
import time:       464 |        536 |                         heapq
import time:      1072 |       1607 |                       difflib
import time:       968 |        968 |                         dataclasses
import time:       589 |       1556 |                       pprint
import time:      1042 |       4204 |                     unittest.case
import time:       342 |        342 |                     unittest.suite
import time:       768 |        768 |                     unittest.loader
import time:      1684 |       1684 |                         gettext
import time:      1898 |       3582 |                       argparse
import time:       213 |        213 |                         unittest.signals
import time:       433 |        646 |                       unittest.runner
import time:       573 |       4799 |                     unittest.main
import time:       984 |      12714 |                   unittest
import time:       233 |        233 |                   numpy.testing._private
import time:        78 |         78 |                     gc
import time:       726 |        726 |                     sysconfig
import time:       272 |        272 |                     numpy.linalg.lapack_lite
import time:       598 |        598 |                     _sysconfigdata__x86_64-linux-gnu
import time:      9022 |      10694 |                   numpy.testing._private.utils
import time:       251 |        251 |                   numpy.testing._private.extbuild
import time:       186 |        186 |                   numpy.testing.overrides
import time:       647 |      24724 |                 numpy.testing
import time:       363 |      25086 |               scipy.optimize._constraints
import time:       151 |        151 |                     sksparse
import time:        35 |        185 |                   sksparse.cholmod
import time:       244 |        428 |                 scipy.optimize._trustregion_constr.projections
import time:       231 |        231 |                 scipy.optimize._trustregion_constr.qp_subproblem
import time:       240 |        899 |               scipy.optimize._trustregion_constr.equality_constrained_sqp
import time:       278 |        278 |               scipy.optimize._trustregion_constr.canonical_constraint
import time:       377 |        377 |               scipy.optimize._trustregion_constr.tr_interior_point
import time:       261 |        261 |               scipy.optimize._trustregion_constr.report
import time:       448 |      27346 |             scipy.optimize._trustregion_constr.minimize_trustregion_constr
import time:       202 |      27548 |           scipy.optimize._trustregion_constr
import time:       295 |        295 |             scipy.optimize._lbfgsb
import time:       636 |        931 |           scipy.optimize._lbfgsb_py
import time:       277 |        277 |             scipy.optimize._moduleTNC
import time:       412 |        688 |           scipy.optimize._tnc
import time:       264 |        264 |             scipy.optimize._cobyla
import time:       448 |        712 |           scipy.optimize._cobyla_py
import time:       240 |        240 |             scipy.optimize._slsqp
import time:       457 |        697 |           scipy.optimize._slsqp_py
import time:      1411 |      39568 |         scipy.optimize._minimize
import time:       237 |        237 |             scipy.optimize._minpack
import time:       313 |        313 |                   scipy.optimize._lsq.common
import time:       527 |        840 |                 scipy.optimize._lsq.trf
import time:       258 |        258 |                 scipy.optimize._lsq.dogbox
import time:       644 |       1741 |               scipy.optimize._lsq.least_squares
import time:       322 |        322 |                   scipy.optimize._lsq.givens_elimination
import time:       403 |        725 |                 scipy.optimize._lsq.trf_linear
import time:       200 |        200 |                 scipy.optimize._lsq.bvls
import time:       532 |       1456 |               scipy.optimize._lsq.lsq_linear
import time:       468 |       3664 |             scipy.optimize._lsq
import time:       648 |       4548 |           scipy.optimize._minpack_py
import time:       272 |        272 |           scipy.optimize._spectral
import time:      2648 |       2648 |           scipy.optimize._nonlin
import time:       704 |       8170 |         scipy.optimize._root
import time:       213 |        213 |             scipy.optimize._zeros
import time:       537 |        749 |           scipy.optimize._zeros_py
import time:       440 |       1189 |         scipy.optimize._root_scalar
import time:       252 |        252 |           scipy.optimize.__nnls
import time:       366 |        618 |         scipy.optimize._nnls
import time:       403 |        403 |         scipy.optimize._basinhopping
import time:       173 |        173 |               scipy.optimize._highs
import time:      1206 |       1379 |             scipy.optimize._highs._highs_wrapper
import time:       250 |        250 |             scipy.optimize._highs._highs_constants
import time:       579 |       2207 |           scipy.optimize._linprog_highs
import time:       337 |        337 |                     scipy.linalg._interpolative
import time:       458 |        794 |                   scipy.linalg._interpolative_backend
import time:       371 |       1165 |                 scipy.linalg.interpolative
import time:       364 |       1529 |               scipy.optimize._remove_redundancy
import time:       995 |       2523 |             scipy.optimize._linprog_util
import time:       163 |        163 |             sksparse
import time:       148 |        148 |               scikits
import time:       160 |        307 |             scikits.umfpack
import time:       729 |       3720 |           scipy.optimize._linprog_ip
import time:       251 |        251 |           scipy.optimize._linprog_simplex
import time:       403 |        403 |             scipy.optimize._bglu_dense
import time:       418 |        821 |           scipy.optimize._linprog_rs
import time:       231 |        231 |           scipy.optimize._linprog_doc
import time:       943 |       8170 |         scipy.optimize._linprog
import time:       220 |        220 |         scipy.optimize._lsap
import time:       438 |        438 |         scipy.optimize._differentialevolution
import time:        62 |         62 |               _string
import time:      1268 |       1330 |             string
import time:        53 |         53 |             atexit
import time:      2329 |       3711 |           logging
import time:       352 |        352 |             scipy.spatial._ckdtree
import time:       318 |        669 |           scipy.spatial._kdtree
import time:       519 |        519 |           scipy.spatial._qhull
import time:       216 |        216 |             scipy.spatial._voronoi
import time:       194 |        410 |           scipy.spatial._spherical_voronoi
import time:       514 |        514 |           scipy.spatial._plotutils
import time:       121 |        121 |           scipy.spatial._procrustes
import time:       151 |        151 |               scipy.spatial._distance_wrap
import time:       264 |        264 |               scipy.spatial._hausdorff
import time:       194 |        194 |                 scipy.special._sf_error
import time:       208 |        208 |                   scipy.special._ufuncs_cxx
import time:      1334 |       1542 |                 scipy.special._ufuncs
import time:       188 |        188 |                   scipy.special._specfun
import time:       137 |        137 |                   scipy.special._comb
import time:       346 |        670 |                 scipy.special._basic
import time:       123 |        123 |                 scipy.special._logsumexp
import time:       284 |        284 |                 scipy.special._orthogonal
import time:       117 |        117 |                 scipy.special._spfun_stats
import time:       202 |        202 |                   scipy.special._ellip_harm_2
import time:       138 |        340 |                 scipy.special._ellip_harm
import time:       107 |        107 |                 scipy.special._lambertw
import time:       109 |        109 |                 scipy.special._spherical_bessel
import time:       333 |        333 |                   scipy.special._add_newdocs
import time:       118 |        450 |                 scipy.special.add_newdocs
import time:       129 |        129 |                 scipy.special.basic
import time:       117 |        117 |                 scipy.special.orthogonal
import time:       112 |        112 |                 scipy.special.specfun
import time:       114 |        114 |                 scipy.special.sf_error
import time:       101 |        101 |                 scipy.special.spfun_stats
import time:       405 |       4905 |               scipy.special
import time:       411 |        411 |               scipy.spatial._distance_pybind
import time:      3439 |       9169 |             scipy.spatial.distance
import time:       130 |       9298 |           scipy.spatial._geometric_slerp
import time:       122 |        122 |           scipy.spatial.ckdtree
import time:       105 |        105 |           scipy.spatial.kdtree
import time:       104 |        104 |           scipy.spatial.qhull
import time:        90 |         90 |               backports_abc
import time:      2512 |       2512 |                   scipy.constants._codata
import time:       185 |        185 |                   scipy.constants._constants
import time:       115 |        115 |                   scipy.constants.codata
import time:       126 |        126 |                   scipy.constants.constants
import time:       805 |       3741 |                 scipy.constants
import time:       128 |       3869 |               scipy.spatial.transform._rotation_groups
import time:       517 |       4474 |             scipy.spatial.transform._rotation
import time:       158 |        158 |             scipy.spatial.transform._rotation_spline
import time:       107 |        107 |             scipy.spatial.transform.rotation
import time:       151 |       4889 |           scipy.spatial.transform
import time:       100 |        100 |             scipy.optimize._shgo_lib
import time:       596 |        596 |               _decimal
import time:       158 |        754 |             decimal
import time:       287 |        287 |             scipy.optimize._shgo_lib._vertex
import time:       271 |       1411 |           scipy.optimize._shgo_lib._complex
import time:       700 |      22568 |         scipy.optimize._shgo
import time:       238 |        238 |         scipy.optimize._dual_annealing
import time:       235 |        235 |         scipy.optimize._qap
import time:       123 |        123 |           scipy.optimize._direct
import time:       152 |        274 |         scipy.optimize._direct_py
import time:       142 |        142 |         scipy.optimize._milp
import time:       107 |        107 |         scipy.optimize.cobyla
import time:       102 |        102 |         scipy.optimize.lbfgsb
import time:       102 |        102 |         scipy.optimize.linesearch
import time:       103 |        103 |         scipy.optimize.minpack
import time:        95 |         95 |         scipy.optimize.minpack2
import time:        97 |         97 |         scipy.optimize.moduleTNC
import time:       132 |        132 |         scipy.optimize.nonlin
import time:       118 |        118 |         scipy.optimize.optimize
import time:       109 |        109 |         scipy.optimize.slsqp
import time:       106 |        106 |         scipy.optimize.tnc
import time:       112 |        112 |         scipy.optimize.zeros
import time:      1716 |     164179 |       scipy.optimize
import time:       602 |        602 |         skrf.constants
import time:       656 |        656 |             locale
import time:       127 |        127 |               packaging
import time:       169 |        169 |               packaging._structures
import time:       876 |       1170 |             packaging.version
import time:       243 |        243 |               matplotlib._api.deprecation
import time:       294 |        536 |             matplotlib._api
import time:       106 |        106 |             matplotlib._version
import time:       317 |        317 |               gzip
import time:       395 |        395 |               shlex
import time:       211 |        211 |               matplotlib._c_internal_utils
import time:       725 |       1646 |             matplotlib.cbook
import time:       176 |        176 |             matplotlib._docstring
import time:       172 |        172 |                   PIL._version
import time:       189 |        361 |                 PIL
import time:       139 |        139 |                             xml
import time:       149 |        288 |                           xml.parsers
import time:       112 |        112 |                           pyexpat
import time:       161 |        560 |                         xml.parsers.expat
import time:       229 |        788 |                       defusedxml.common
import time:       150 |        937 |                     defusedxml
import time:       123 |        123 |                       xml.etree
import time:       464 |        464 |                       xml.etree.ElementPath
import time:        80 |         80 |                       _elementtree
import time:       657 |       1322 |                     xml.etree.ElementTree
import time:        14 |         14 |                     _elementtree
import time:       674 |       2946 |                   defusedxml.ElementTree
import time:      5137 |       5137 |                   PIL.ExifTags
import time:       155 |        155 |                   PIL.ImageMode
import time:       495 |        495 |                   PIL.TiffTags
import time:       130 |        130 |                   PIL._binary
import time:       127 |        127 |                   PIL._util
import time:       782 |        782 |                   PIL._imaging
import time:        96 |         96 |                   cffi
import time:      1358 |      11220 |                 PIL.Image
import time:       140 |        140 |                   PIL.ImageChops
import time:       274 |        274 |                   PIL.ImageFile
import time:        74 |         74 |                     array
import time:       160 |        160 |                     PIL.GimpGradientFile
import time:       126 |        126 |                     PIL.GimpPaletteFile
import time:       159 |        159 |                     PIL.ImageColor
import time:       123 |        123 |                     PIL.PaletteFile
import time:       232 |        871 |                   PIL.ImagePalette
import time:       121 |        121 |                   PIL.ImageSequence
import time:       851 |       2256 |                 PIL.PngImagePlugin
import time:       361 |        361 |                 matplotlib._cm
import time:       226 |        226 |                       matplotlib._path
import time:       231 |        231 |                         matplotlib.bezier
import time:       318 |        549 |                       matplotlib.path
import time:       987 |       1760 |                     matplotlib.transforms
import time:      1274 |       3033 |                   matplotlib.ticker
import time:       571 |       3604 |                 matplotlib.scale
import time:       567 |        567 |                 matplotlib._color_data
import time:      1571 |      19937 |               matplotlib.colors
import time:       321 |        321 |                   pyparsing.util
import time:       471 |        471 |                     pyparsing.unicode
import time:      1646 |       2116 |                   pyparsing.exceptions
import time:       164 |        164 |                   pyparsing.actions
import time:       283 |        283 |                     pyparsing.results
import time:      6229 |       6511 |                   pyparsing.core
import time:       922 |        922 |                         html.entities
import time:       400 |       1322 |                       html
import time:        24 |       1346 |                     html.entities
import time:      2295 |       3640 |                   pyparsing.helpers
import time:       224 |        224 |                   pyparsing.testing
import time:     10248 |      10248 |                   pyparsing.common
import time:       503 |      23724 |                 pyparsing
import time:       439 |      24162 |               matplotlib._fontconfig_pattern
import time:       488 |        488 |               matplotlib._enums
import time:       223 |        223 |               cycler
import time:       720 |      45528 |             matplotlib.rcsetup
import time:       364 |        364 |             matplotlib.ft2font
import time:       146 |        146 |             dateutil._version
import time:       323 |        323 |             kiwisolver._cext
import time:       707 |        707 |               matplotlib._cm_listed
import time:      4727 |       5434 |             matplotlib.cm
import time:      5993 |      62072 |           matplotlib
import time:      3075 |       3075 |               matplotlib.artist
import time:       282 |        282 |               matplotlib.hatch
import time:       614 |        614 |                 matplotlib.markers
import time:      6202 |       6816 |               matplotlib.lines
import time:     18150 |      28321 |             matplotlib.collections
import time:       333 |        333 |                     _uuid
import time:       320 |        652 |                   uuid
import time:       129 |        129 |                   matplotlib._pylab_helpers
import time:       641 |       1421 |                 matplotlib.backend_tools
import time:       444 |        444 |                       matplotlib._mathtext_data
import time:       385 |        828 |                     matplotlib._afm
import time:      8961 |       9789 |                   matplotlib.font_manager
import time:     26677 |      26677 |                   matplotlib.patches
import time:       658 |        658 |                     matplotlib._text_helpers
import time:      1061 |       1061 |                     matplotlib.dviread
import time:        55 |         55 |                         unicodedata
import time:      1776 |       1830 |                       matplotlib._mathtext
import time:       571 |       2401 |                     matplotlib.mathtext
import time:       246 |        246 |                     matplotlib.texmanager
import time:       324 |       4688 |                   matplotlib.textpath
import time:      6615 |      47767 |                 matplotlib.text
import time:       132 |        132 |                 matplotlib._tight_bbox
import time:      1937 |       1937 |                 matplotlib.widgets
import time:       207 |        207 |                 matplotlib.backend_managers
import time:      1656 |      53118 |               matplotlib.backend_bases
import time:      1963 |      55080 |             matplotlib.contour
import time:      1577 |       1577 |             matplotlib.spines
import time:      1624 |      86601 |           matplotlib.colorbar
import time:       242 |        242 |             matplotlib._image
import time:      5868 |       6109 |           matplotlib.image
import time:       439 |        439 |                   importlib.abc
import time:       189 |        189 |                   importlib._adapters
import time:       209 |        836 |                 importlib._common
import time:       227 |       1062 |               importlib.resources
import time:      8774 |       9835 |             matplotlib.style.core
import time:       145 |       9979 |           matplotlib.style
import time:       114 |        114 |             matplotlib._blocking_input
import time:      9793 |       9793 |                   matplotlib.offsetbox
import time:       203 |        203 |                     matplotlib.units
import time:      8030 |       8232 |                   matplotlib.axis
import time:       154 |        154 |                     matplotlib._tight_layout
import time:       385 |        539 |                   matplotlib.gridspec
import time:      2815 |       2815 |                   matplotlib.table
import time:      5104 |      26480 |                 matplotlib.axes._base
import time:       466 |        466 |                         calendar
import time:       723 |        723 |                         six
import time:       124 |        124 |                           dateutil._common
import time:       194 |        317 |                         dateutil.relativedelta
import time:        37 |         37 |                             six.moves
import time:       192 |        192 |                             dateutil.tz._common
import time:       164 |        164 |                             dateutil.tz._factories
import time:        28 |         28 |                               six.moves.winreg
import time:       237 |        265 |                             dateutil.tz.win
import time:       580 |       1236 |                           dateutil.tz.tz
import time:       151 |       1387 |                         dateutil.tz
import time:       574 |       3464 |                       dateutil.parser._parser
import time:       274 |        274 |                       dateutil.parser.isoparser
import time:       205 |       3943 |                     dateutil.parser
import time:       218 |       4160 |                   matplotlib.category
import time:       417 |        417 |                     dateutil.rrule
import time:       815 |       1231 |                   matplotlib.dates
import time:       187 |        187 |                     matplotlib.container
import time:       465 |        465 |                     matplotlib.legend_handler
import time:      1977 |       2629 |                   matplotlib.legend
import time:       340 |        340 |                   matplotlib.mlab
import time:      4195 |       4195 |                   matplotlib.quiver
import time:       129 |        129 |                   matplotlib.stackplot
import time:       751 |        751 |                   matplotlib.streamplot
import time:       188 |        188 |                     matplotlib.tri._triangulation
import time:       362 |        362 |                     matplotlib.tri._tricontour
import time:       149 |        149 |                     matplotlib.tri._trifinder
import time:       148 |        148 |                       matplotlib.tri._tritools
import time:       510 |        657 |                     matplotlib.tri._triinterpolate
import time:       132 |        132 |                     matplotlib.tri._tripcolor
import time:       113 |        113 |                     matplotlib.tri._triplot
import time:       153 |        153 |                     matplotlib.tri._trirefine
import time:       208 |       1958 |                   matplotlib.tri
import time:      2159 |       2159 |                   matplotlib.axes._secondary_axes
import time:     12269 |      29816 |                 matplotlib.axes._axes
import time:       180 |      56475 |               matplotlib.axes
import time:      8891 |       8891 |               matplotlib.projections.geo
import time:      6970 |       6970 |               matplotlib.projections.polar
import time:       149 |        149 |                     mpl_toolkits.mplot3d.proj3d
import time:     10450 |      10599 |                   mpl_toolkits.mplot3d.art3d
import time:      4775 |       4775 |                   mpl_toolkits.mplot3d.axis3d
import time:      6376 |      21750 |                 mpl_toolkits.mplot3d.axes3d
import time:       254 |      22003 |               mpl_toolkits.mplot3d
import time:       195 |      94532 |             matplotlib.projections
import time:       195 |        195 |                 matplotlib._layoutgrid
import time:       197 |        392 |               matplotlib._constrained_layout
import time:       204 |        595 |             matplotlib.layout_engine
import time:      5611 |     100850 |           matplotlib.figure
import time:      1251 |     266860 |         matplotlib.pyplot
import time:      3221 |     270682 |       skrf.util
import time:      2775 |       2775 |             skrf.frequency
import time:       225 |        225 |               scipy.signal._sigtools
import time:        83 |         83 |                       uarray
import time:       200 |        200 |                           scipy._lib._uarray._uarray
import time:       360 |        560 |                         scipy._lib._uarray._backend
import time:       129 |        688 |                       scipy._lib._uarray
import time:       116 |        886 |                     scipy._lib.uarray
import time:       707 |       1592 |                   scipy.fft._basic
import time:       377 |        377 |                   scipy.fft._realtransforms
import time:       149 |        149 |                   scipy.fft._fftlog
import time:       183 |        183 |                   scipy.fft._fftlog_multimethods
import time:       325 |        325 |                         scipy.fft._pocketfft.pypocketfft
import time:       167 |        167 |                         scipy.fft._pocketfft.helper
import time:       264 |        755 |                       scipy.fft._pocketfft.basic
import time:       132 |        132 |                       scipy.fft._pocketfft.realtransforms
import time:       134 |       1020 |                     scipy.fft._pocketfft
import time:       118 |       1137 |                   scipy.fft._helper
import time:       140 |        140 |                   scipy.fft._backend
import time:       474 |       4050 |                 scipy.signal.windows._windows
import time:       111 |        111 |                 scipy.signal.windows.windows
import time:       142 |       4302 |               scipy.signal.windows
import time:       140 |        140 |               scipy.signal._waveforms
import time:       157 |        157 |                 scipy.signal._max_len_seq_inner
import time:       124 |        280 |               scipy.signal._max_len_seq
import time:       235 |        235 |                 scipy.signal._upfirdn_apply
import time:       145 |        380 |               scipy.signal._upfirdn
import time:       135 |        135 |               scipy.signal._spline
import time:       171 |        171 |                         scipy.interpolate._fitpack
import time:       191 |        191 |                         scipy.interpolate.dfitpack
import time:       304 |        666 |                       scipy.interpolate._fitpack_impl
import time:       238 |        238 |                         scipy.interpolate._bspl
import time:       304 |        541 |                       scipy.interpolate._bsplines
import time:       147 |       1353 |                     scipy.interpolate._fitpack_py
import time:       224 |        224 |                     scipy.interpolate._polyint
import time:       234 |        234 |                     scipy.interpolate._ppoly
import time:       357 |        357 |                     scipy.interpolate.interpnd
import time:       502 |       2669 |                   scipy.interpolate._interpolate
import time:       381 |        381 |                   scipy.interpolate._fitpack2
import time:       166 |        166 |                   scipy.interpolate._rbf
import time:       179 |        179 |                     scipy.interpolate._rbfinterp_pythran
import time:       185 |        363 |                   scipy.interpolate._rbfinterp
import time:       230 |        230 |                   scipy.interpolate._cubic
import time:       214 |        214 |                   scipy.interpolate._ndgriddata
import time:       112 |        112 |                   scipy.interpolate._pade
import time:       216 |        216 |                     scipy.interpolate._rgi_cython
import time:       190 |        406 |                   scipy.interpolate._rgi
import time:       115 |        115 |                   scipy.interpolate.fitpack
import time:       104 |        104 |                   scipy.interpolate.fitpack2
import time:       106 |        106 |                   scipy.interpolate.interpolate
import time:       102 |        102 |                   scipy.interpolate.ndgriddata
import time:        96 |         96 |                   scipy.interpolate.polyint
import time:        97 |         97 |                   scipy.interpolate.rbf
import time:       316 |       5470 |                 scipy.interpolate
import time:       279 |       5748 |               scipy.signal._bsplines
import time:       412 |        412 |               scipy.signal._filter_design
import time:       191 |        191 |               scipy.signal._fir_filter_design
import time:       371 |        371 |                 scipy.integrate._quadrature
import time:       168 |        168 |                   scipy.integrate._odepack
import time:       159 |        327 |                 scipy.integrate._odepack_py
import time:       174 |        174 |                   scipy.integrate._quadpack
import time:       329 |        503 |                 scipy.integrate._quadpack_py
import time:       192 |        192 |                   scipy.integrate._vode
import time:       166 |        166 |                   scipy.integrate._dop
import time:       168 |        168 |                   scipy.integrate._lsoda
import time:       391 |        915 |                 scipy.integrate._ode
import time:       234 |        234 |                 scipy.integrate._bvp
import time:       226 |        226 |                       scipy.integrate._ivp.common
import time:       169 |        169 |                       scipy.integrate._ivp.base
import time:       203 |        598 |                     scipy.integrate._ivp.bdf
import time:       239 |        239 |                     scipy.integrate._ivp.radau
import time:       147 |        147 |                       scipy.integrate._ivp.dop853_coefficients
import time:       286 |        433 |                     scipy.integrate._ivp.rk
import time:       165 |        165 |                     scipy.integrate._ivp.lsoda
import time:       251 |       1683 |                   scipy.integrate._ivp.ivp
import time:       126 |       1808 |                 scipy.integrate._ivp
import time:       223 |        223 |                 scipy.integrate._quad_vec
import time:       114 |        114 |                 scipy.integrate.dop
import time:       101 |        101 |                 scipy.integrate.lsoda
import time:        99 |         99 |                 scipy.integrate.vode
import time:       111 |        111 |                 scipy.integrate.odepack
import time:        99 |         99 |                 scipy.integrate.quadpack
import time:       148 |        148 |                 scipy.signal._lti_conversion
import time:       921 |       5967 |               scipy.signal._ltisys
import time:       212 |        212 |                 timeit
import time:       125 |        125 |                   scipy.ndimage._ni_support
import time:       143 |        143 |                   scipy.ndimage._nd_image
import time:       124 |        124 |                     scipy._lib.doccer
import time:       293 |        416 |                   scipy.ndimage._ni_docstrings
import time:      1768 |       2451 |                 scipy.ndimage._filters
import time:       131 |        131 |                 scipy.ndimage._fourier
import time:       703 |        703 |                 scipy.ndimage._interpolation
import time:       247 |        247 |                   scipy.ndimage._ni_label
import time:       233 |        233 |                   scipy.ndimage._morphology
import time:       257 |        736 |                 scipy.ndimage._measurements
import time:       117 |        117 |                 scipy.ndimage.filters
import time:       109 |        109 |                 scipy.ndimage.fourier
import time:       102 |        102 |                 scipy.ndimage.interpolation
import time:       101 |        101 |                 scipy.ndimage.measurements
import time:       101 |        101 |                 scipy.ndimage.morphology
import time:       104 |        104 |                 scipy.signal._arraytools
import time:       267 |        267 |                 scipy.signal._sosfilt
import time:       757 |       5886 |               scipy.signal._signaltools
import time:       139 |        139 |               scipy.signal._savitzky_golay
import time:       162 |        162 |                 scipy.signal._spectral
import time:       227 |        389 |               scipy.signal._spectral_py
import time:       146 |        146 |               scipy.signal._wavelets
import time:       225 |        225 |                   scipy.stats._warnings_errors
import time:       168 |        168 |                         scipy.stats._distr_params
import time:       156 |        156 |                         scipy._lib._finite_differences
import time:       125 |        125 |                         scipy.stats._constants
import time:       148 |        148 |                         scipy.stats._censored_data
import time:       907 |       1502 |                       scipy.stats._distn_infrastructure
import time:       571 |        571 |                           scipy.special.cython_special
import time:       384 |        955 |                         scipy.stats._stats
import time:       163 |        163 |                         scipy.stats._tukeylambda_stats
import time:       191 |        191 |                         scipy.stats._ksstats
import time:       249 |        249 |                           scipy.stats._boost.beta_ufunc
import time:       191 |        191 |                           scipy.stats._boost.binom_ufunc
import time:       189 |        189 |                           scipy.stats._boost.nbinom_ufunc
import time:       193 |        193 |                           scipy.stats._boost.hypergeom_ufunc
import time:       181 |        181 |                           scipy.stats._boost.ncf_ufunc
import time:       186 |        186 |                           scipy.stats._boost.ncx2_ufunc
import time:       240 |        240 |                           scipy.stats._boost.nct_ufunc
import time:       182 |        182 |                           scipy.stats._boost.skewnorm_ufunc
import time:       184 |        184 |                           scipy.stats._boost.invgauss_ufunc
import time:       241 |       2034 |                         scipy.stats._boost
import time:     56433 |      59774 |                       scipy.stats._continuous_distns
import time:       241 |        241 |                         scipy.stats._biasedurn
import time:      9894 |      10134 |                       scipy.stats._discrete_distns
import time:       204 |        204 |                         scipy.stats._levy_stable.levyst
import time:      1401 |       1605 |                       scipy.stats._levy_stable
import time:       144 |        144 |                       scipy.stats._entropy
import time:       247 |      73403 |                     scipy.stats.distributions
import time:       133 |        133 |                       scipy._lib._bunch
import time:       172 |        172 |                         scipy.stats._stats_pythran
import time:       700 |        871 |                       scipy.stats._stats_mstats_common
import time:      1381 |       2385 |                     scipy.stats._mstats_basic
import time:       178 |        178 |                       scipy.stats._common
import time:      1464 |       1642 |                     scipy.stats._hypotests
import time:       420 |        420 |                             pkgutil
import time:      1073 |       1492 |                           pydoc
import time:      1209 |       2700 |                         scipy._lib._docscrape
import time:       212 |       2911 |                       scipy.stats._axis_nan_policy
import time:      2699 |       5610 |                     scipy.stats._resampling
import time:       172 |        172 |                     scipy.stats._binomtest
import time:     11276 |      94485 |                   scipy.stats._stats_py
import time:       140 |        140 |                   scipy.stats._variation
import time:       175 |        175 |                     scipy.stats._statlib
import time:       437 |        437 |                     scipy.stats._fit
import time:       457 |        457 |                       scipy.stats._relative_risk
import time:       306 |        306 |                       scipy.stats._crosstab
import time:       170 |        170 |                       scipy.stats._odds_ratio
import time:       363 |       1295 |                     scipy.stats.contingency
import time:      4792 |       6698 |                   scipy.stats._morestats
import time:       255 |        255 |                       scipy.stats._sobol
import time:       237 |        237 |                       scipy.stats._qmc_cy
import time:       520 |       1010 |                     scipy.stats._qmc
import time:       720 |       1730 |                   scipy.stats._multicomp
import time:       357 |        357 |                   scipy.stats._binned_statistic
import time:       166 |        166 |                     scipy.stats._mvn
import time:       218 |        384 |                   scipy.stats._kde
import time:       223 |        223 |                     scipy.stats._mstats_extras
import time:       139 |        362 |                   scipy.stats.mstats
import time:       107 |        107 |                   scipy.stats.qmc
import time:       252 |        252 |                     scipy.stats._covariance
import time:       276 |        276 |                       scipy.stats._rcont.rcont
import time:       126 |        401 |                     scipy.stats._rcont
import time:       154 |        154 |                     scipy.stats._qmvnt
import time:      2832 |       3638 |                   scipy.stats._multivariate
import time:       120 |        120 |                   scipy.stats._rvs_sampling
import time:       523 |        523 |                   scipy.stats._page_trend_test
import time:      1164 |       1164 |                   scipy.stats._mannwhitneyu
import time:      1154 |       1154 |                   scipy.stats._sensitivity_analysis
import time:      1036 |       1036 |                   scipy.stats._survival
import time:       132 |        132 |                   scipy.stats.biasedurn
import time:       121 |        121 |                   scipy.stats.kde
import time:       116 |        116 |                   scipy.stats.morestats
import time:       115 |        115 |                   scipy.stats.mstats_basic
import time:        98 |         98 |                   scipy.stats.mstats_extras
import time:        95 |         95 |                   scipy.stats.mvn
import time:        93 |         93 |                   scipy.stats.statlib
import time:       114 |        114 |                   scipy.stats.stats
import time:       556 |     113551 |                 scipy.stats
import time:       250 |        250 |                 scipy.signal._peak_finding_utils
import time:       211 |     114011 |               scipy.signal._peak_finding
import time:        52 |         52 |                 cmath
import time:       174 |        226 |               scipy.signal._czt
import time:       117 |        117 |               scipy.signal.bsplines
import time:       119 |        119 |               scipy.signal.filter_design
import time:       112 |        112 |               scipy.signal.fir_filter_design
import time:        99 |         99 |               scipy.signal.lti_conversion
import time:       107 |        107 |               scipy.signal.ltisys
import time:        98 |         98 |               scipy.signal.spectral
import time:       109 |        109 |               scipy.signal.signaltools
import time:       100 |        100 |               scipy.signal.waveforms
import time:        94 |         94 |               scipy.signal.wavelets
import time:        91 |         91 |               scipy.signal.spline
import time:      3098 |     142708 |             skrf.mathFunctions
import time:       679 |        679 |               zipfile
import time:      5342 |       5342 |               skrf.plotting
import time:      1399 |       1399 |               skrf.time
import time:     69090 |      76509 |             skrf.network
import time:       453 |        453 |                 numpy._typing._add_docstring
import time:       148 |        601 |               numpy.typing
import time:      3894 |       4494 |             skrf.networkSet
import time:      1759 |     228244 |           skrf.io.citi
import time:      2988 |       2988 |           skrf.io.csv
import time:       331 |        331 |             glob
import time:       202 |        202 |                 pytz.exceptions
import time:       205 |        205 |                 pytz.lazy
import time:       194 |        194 |                 pytz.tzinfo
import time:       124 |        124 |                 pytz.tzfile
import time:       598 |       1320 |               pytz
import time:      2656 |       2656 |                 pandas._typing
import time:       160 |        160 |                 pandas.compat._constants
import time:       166 |        166 |                 pandas.compat.compressors
import time:       220 |        220 |                                         pandas._libs.tslibs.np_datetime
import time:       709 |        929 |                                       pandas._libs.tslibs.dtypes
import time:       158 |        158 |                                         pandas._libs.tslibs.base
import time:     14576 |      14576 |                                             pandas._libs.tslibs.nattype
import time:       149 |        149 |                                                   pandas.util._exceptions
import time:       778 |        778 |                                                   pandas.util.version
import time:       210 |       1136 |                                                 pandas.compat._optional
import time:       222 |        222 |                                                   zoneinfo._tzpath
import time:       164 |        164 |                                                   zoneinfo._common
import time:       225 |        225 |                                                   _zoneinfo
import time:       238 |        847 |                                                 zoneinfo
import time:       401 |       2383 |                                               pandas._libs.tslibs.timezones
import time:       198 |        198 |                                                 pandas._libs.tslibs.ccalendar
import time:       783 |        783 |                                                 _strptime
import time:       676 |        676 |                                                     pandas._config.config
import time:       229 |        229 |                                                     pandas._config.dates
import time:       150 |        150 |                                                     pandas._config.display
import time:       193 |       1246 |                                                   pandas._config
import time:       147 |       1393 |                                                 pandas._config.localization
import time:       380 |       2753 |                                               pandas._libs.tslibs.fields
import time:       702 |       5837 |                                             pandas._libs.tslibs.timedeltas
import time:       379 |        379 |                                             pandas._libs.tslibs.tzconversion
import time:        97 |         97 |                                             backports_abc
import time:       652 |      21540 |                                           pandas._libs.tslibs.timestamps
import time:       110 |        110 |                                           backports_abc
import time:       111 |        111 |                                           dateutil.easter
import time:       199 |        199 |                                           pandas._libs.properties
import time:      1342 |      23299 |                                         pandas._libs.tslibs.offsets
import time:        91 |         91 |                                           backports_abc
import time:       587 |        587 |                                           pandas._libs.tslibs.strptime
import time:       475 |       1152 |                                         pandas._libs.tslibs.parsing
import time:       328 |      24936 |                                       pandas._libs.tslibs.conversion
import time:       473 |        473 |                                       pandas._libs.tslibs.period
import time:       268 |        268 |                                       pandas._libs.tslibs.vectorized
import time:       198 |      26803 |                                     pandas._libs.tslibs
import time:        20 |      26822 |                                   pandas._libs.tslibs.nattype
import time:       174 |        174 |                                   pandas._libs.ops_dispatch
import time:       306 |      27302 |                                 pandas._libs.missing
import time:       474 |      27776 |                               pandas._libs.hashtable
import time:       487 |        487 |                               pandas._libs.algos
import time:       596 |      28858 |                             pandas._libs.interval
import time:       111 |      28968 |                           pandas._libs
import time:        20 |      28987 |                         pandas._libs.properties
import time:       214 |      29201 |                       pandas.util._decorators
import time:       120 |        120 |                           pandas.core
import time:       172 |        291 |                         pandas.core.util
import time:       621 |        621 |                         pandas._libs.lib
import time:       235 |        235 |                         pandas._libs.hashing
import time:       116 |        116 |                           pandas.core.dtypes
import time:       517 |        517 |                             pandas.errors
import time:       358 |        358 |                             pandas.core.dtypes.generic
import time:       242 |       1117 |                           pandas.core.dtypes.base
import time:       147 |        147 |                             pandas.core.dtypes.inference
import time:       986 |       1133 |                           pandas.core.dtypes.dtypes
import time:       311 |       2675 |                         pandas.core.dtypes.common
import time:       249 |       4068 |                       pandas.core.util.hashing
import time:       110 |      33379 |                     pandas.util
import time:        19 |      33398 |                   pandas.util.version
import time:       195 |      33592 |                 pandas.compat.numpy
import time:        85 |         85 |                   pyarrow
import time:       129 |        213 |                 pandas.compat.pyarrow
import time:       233 |      37017 |               pandas.compat
import time:       321 |        321 |               pandas._libs.tslib
import time:       852 |        852 |               pandas.core.config_init
import time:       197 |        197 |                 pandas.core.dtypes.missing
import time:       119 |        119 |                       pandas.io
import time:       171 |        290 |                     pandas.io._util
import time:       409 |        698 |                   pandas.core.dtypes.cast
import time:       151 |        151 |                     pandas.core.dtypes.astype
import time:       169 |        320 |                   pandas.core.dtypes.concat
import time:       104 |        104 |                     pandas.core.array_algos
import time:       213 |        213 |                       pandas.core.common
import time:       193 |        405 |                     pandas.core.construction
import time:       263 |        771 |                   pandas.core.array_algos.take
import time:       182 |        182 |                     pandas.core.indexers.utils
import time:       129 |        311 |                   pandas.core.indexers
import time:       536 |       2633 |                 pandas.core.algorithms
import time:       184 |        184 |                       pandas.util._validators
import time:       114 |        114 |                       pandas.core.roperator
import time:       248 |        248 |                               pandas._libs.ops
import time:       114 |        114 |                               pandas.core.computation
import time:       188 |        188 |                                 pandas.core.computation.check
import time:       221 |        409 |                               pandas.core.computation.expressions
import time:       129 |        129 |                               pandas.core.ops.missing
import time:       104 |        104 |                               pandas.core.ops.dispatch
import time:       102 |        102 |                               pandas.core.ops.invalid
import time:       297 |       1400 |                             pandas.core.ops.array_ops
import time:       115 |        115 |                             pandas.core.ops.common
import time:       152 |        152 |                             pandas.core.ops.docstrings
import time:       170 |        170 |                             pandas.core.ops.mask_ops
import time:       136 |        136 |                             pandas.core.ops.methods
import time:       242 |       2212 |                           pandas.core.ops
import time:        20 |       2232 |                         pandas.core.ops.common
import time:       738 |       2970 |                       pandas.core.arraylike
import time:       265 |        265 |                         pandas.compat.numpy.function
import time:       295 |        295 |                         pandas.core.missing
import time:       134 |        134 |                         pandas.core.array_algos.quantile
import time:       202 |        202 |                         pandas.core.sorting
import time:       524 |       1419 |                       pandas.core.arrays.base
import time:       114 |        114 |                         pandas.core.strings
import time:       307 |        421 |                       pandas.core.strings.base
import time:       115 |        115 |                         pandas.tseries
import time:       320 |        435 |                       pandas.tseries.frequencies
import time:       831 |       6370 |                     pandas.core.arrays.arrow.array
import time:       191 |        191 |                     pandas.core.arrays.arrow.dtype
import time:       168 |       6728 |                   pandas.core.arrays.arrow
import time:       121 |        121 |                     pandas.core.array_algos.masked_accumulations
import time:       757 |        757 |                       pandas.core.nanops
import time:       195 |        195 |                       pandas.core.array_algos.masked_reductions
import time:       688 |       1639 |                     pandas.core.arrays.masked
import time:       243 |       2001 |                   pandas.core.arrays.boolean
import time:        68 |         68 |                       _csv
import time:       309 |        376 |                     csv
import time:       269 |        269 |                     pandas._libs.arrays
import time:       316 |        316 |                     pandas.core.accessor
import time:       114 |        114 |                       pandas.core.array_algos.transforms
import time:       442 |        556 |                     pandas.core.arrays._mixins
import time:       572 |        572 |                     pandas.core.base
import time:       348 |        348 |                     pandas.core.strings.object_array
import time:       138 |        138 |                     pandas.io.formats
import time:       161 |        161 |                     pandas.io.formats.console
import time:       633 |       3365 |                   pandas.core.arrays.categorical
import time:       126 |        126 |                       pandas.core.array_algos.datetimelike_accumulations
import time:       228 |        228 |                         pandas.core.arrays.numeric
import time:       339 |        566 |                       pandas.core.arrays.integer
import time:       998 |       1689 |                     pandas.core.arrays.datetimelike
import time:       138 |        138 |                     pandas.core.arrays._ranges
import time:       116 |        116 |                     pandas.tseries.offsets
import time:       492 |       2434 |                   pandas.core.arrays.datetimes
import time:       197 |        197 |                   pandas.core.arrays.floating
import time:       423 |        423 |                     pandas.core.arrays.timedeltas
import time:      1092 |       1514 |                   pandas.core.arrays.interval
import time:       242 |        242 |                   pandas.core.arrays.numpy_
import time:       475 |        475 |                   pandas.core.arrays.period
import time:       695 |        695 |                         pandas._libs.sparse
import time:       201 |        201 |                         pandas.core.arrays.sparse.dtype
import time:       295 |        295 |                         pandas.io.formats.printing
import time:       440 |       1629 |                       pandas.core.arrays.sparse.array
import time:       256 |       1885 |                     pandas.core.arrays.sparse.accessor
import time:       135 |       2019 |                   pandas.core.arrays.sparse
import time:       442 |        442 |                   pandas.core.arrays.string_
import time:       280 |        280 |                   pandas.core.arrays.string_arrow
import time:       244 |      19935 |                 pandas.core.arrays
import time:       145 |        145 |                 pandas.core.flags
import time:       173 |        173 |                     pandas._libs.reduction
import time:       537 |        537 |                     pandas.core.apply
import time:       222 |        222 |                           pandas._libs.indexing
import time:       120 |        120 |                             pandas.core.indexes
import time:       491 |        491 |                               pandas._libs.index
import time:        91 |         91 |                                 backports_abc
import time:       400 |        490 |                               pandas._libs.internals
import time:       310 |        310 |                               pandas._libs.join
import time:       143 |        143 |                               pandas.core.array_algos.putmask
import time:       197 |        197 |                               pandas.core.indexes.frozen
import time:      2203 |       2203 |                               pandas.core.strings.accessor
import time:      1475 |       5305 |                             pandas.core.indexes.base
import time:       267 |        267 |                               pandas.core.indexes.extension
import time:       360 |        627 |                             pandas.core.indexes.category
import time:       782 |        782 |                                 pandas.core.indexes.range
import time:       118 |        118 |                                   pandas.core.tools
import time:       195 |        312 |                                 pandas.core.tools.timedeltas
import time:       682 |       1774 |                               pandas.core.indexes.datetimelike
import time:       135 |        135 |                               pandas.core.tools.times
import time:       858 |       2766 |                             pandas.core.indexes.datetimes
import time:      1132 |       1132 |                               pandas.core.indexes.multi
import time:       236 |        236 |                               pandas.core.indexes.timedeltas
import time:       817 |       2183 |                             pandas.core.indexes.interval
import time:       407 |        407 |                             pandas.core.indexes.period
import time:       298 |      11702 |                           pandas.core.indexes.api
import time:      1185 |      13107 |                         pandas.core.indexing
import time:       136 |        136 |                         pandas.core.sample
import time:       125 |        125 |                         pandas.core.array_algos.replace
import time:       242 |        242 |                               pandas._libs.writers
import time:       678 |        919 |                             pandas.core.internals.blocks
import time:       163 |       1081 |                           pandas.core.internals.api
import time:       225 |        225 |                             pandas.core.internals.base
import time:       516 |        741 |                           pandas.core.internals.array_manager
import time:       317 |        317 |                               pandas.core.internals.ops
import time:       586 |        903 |                             pandas.core.internals.managers
import time:       261 |       1164 |                           pandas.core.internals.concat
import time:       137 |       3121 |                         pandas.core.internals
import time:       273 |        273 |                         pandas.core.internals.construction
import time:       109 |        109 |                           pandas.core.methods
import time:       104 |        104 |                             pandas.core.reshape
import time:       262 |        366 |                           pandas.core.reshape.concat
import time:       208 |        208 |                               mmap
import time:        55 |         55 |                                 pwd
import time:        40 |         40 |                                 grp
import time:       771 |        864 |                               tarfile
import time:       127 |        127 |                               pandas.core.shared_docs
import time:      1473 |       2670 |                             pandas.io.common
import time:       689 |       3358 |                           pandas.io.formats.format
import time:       281 |       4113 |                         pandas.core.methods.describe
import time:       101 |        101 |                               pandas._libs.window
import time:       413 |        513 |                             pandas._libs.window.aggregations
import time:       207 |        207 |                               pandas._libs.window.indexers
import time:       397 |        604 |                             pandas.core.indexers.objects
import time:       137 |        137 |                             pandas.core.util.numba_
import time:       130 |        130 |                             pandas.core.window.common
import time:       206 |        206 |                             pandas.core.window.doc
import time:       155 |        155 |                             pandas.core.window.numba_
import time:       128 |        128 |                             pandas.core.window.online
import time:       113 |        113 |                               pandas.core._numba
import time:       148 |        148 |                               pandas.core._numba.executor
import time:      1578 |       1838 |                             pandas.core.window.rolling
import time:       609 |       4316 |                           pandas.core.window.ewm
import time:       916 |        916 |                           pandas.core.window.expanding
import time:       143 |       5374 |                         pandas.core.window
import time:      4917 |      31164 |                       pandas.core.generic
import time:       190 |        190 |                       pandas.core.methods.selectn
import time:       108 |        108 |                         pandas.core.reshape.util
import time:       136 |        136 |                         pandas.core.tools.numeric
import time:       275 |        517 |                       pandas.core.reshape.melt
import time:       248 |        248 |                         pandas._libs.reshape
import time:       535 |        535 |                         pandas.core.indexes.accessors
import time:       154 |        154 |                           pandas.arrays
import time:       629 |        782 |                         pandas.core.tools.datetimes
import time:       820 |        820 |                         pandas.io.formats.info
import time:      1020 |       1020 |                           pandas.plotting._core
import time:       185 |        185 |                           pandas.plotting._misc
import time:       146 |       1350 |                         pandas.plotting
import time:      2880 |       6612 |                       pandas.core.series
import time:      5663 |      44144 |                     pandas.core.frame
import time:       967 |        967 |                     pandas.core.groupby.base
import time:       165 |        165 |                         backports_abc
import time:       497 |        662 |                       pandas._libs.groupby
import time:       145 |        145 |                       pandas.core.groupby.numba_
import time:       118 |        118 |                           pandas.core.groupby.categorical
import time:       343 |        460 |                         pandas.core.groupby.grouper
import time:       426 |        885 |                       pandas.core.groupby.ops
import time:       291 |        291 |                       pandas.core.groupby.indexing
import time:      1778 |       3760 |                     pandas.core.groupby.groupby
import time:      1658 |      51237 |                   pandas.core.groupby.generic
import time:       127 |      51363 |                 pandas.core.groupby
import time:       207 |      74477 |               pandas.core.api
import time:       114 |        114 |               pandas.tseries.api
import time:       114 |        114 |                       pandas.core.computation.common
import time:       254 |        368 |                     pandas.core.computation.align
import time:       252 |        252 |                       pandas.core.computation.scope
import time:       316 |        567 |                     pandas.core.computation.ops
import time:       185 |       1119 |                   pandas.core.computation.engines
import time:       131 |        131 |                     pandas.core.computation.parsing
import time:       887 |       1017 |                   pandas.core.computation.expr
import time:       169 |       2304 |                 pandas.core.computation.eval
import time:        96 |       2400 |               pandas.core.computation.api
import time:       174 |        174 |                 pandas.core.reshape.encoding
import time:       597 |        597 |                 pandas.core.reshape.merge
import time:       670 |        670 |                 pandas.core.reshape.pivot
import time:       183 |        183 |                 pandas.core.reshape.tile
import time:       163 |       1785 |               pandas.core.reshape.api
import time:       145 |        145 |                 pandas.api.extensions
import time:       103 |        103 |                 pandas.api.indexers
import time:       207 |        207 |                     pandas.core.interchange
import time:       741 |        947 |                   pandas.core.interchange.dataframe_protocol
import time:       107 |        107 |                         pandas.core.dtypes.api
import time:       123 |        229 |                       pandas.api.types
import time:       184 |        412 |                     pandas.core.interchange.utils
import time:       186 |        598 |                   pandas.core.interchange.from_dataframe
import time:       109 |       1653 |                 pandas.api.interchange
import time:       153 |       2052 |               pandas.api
import time:       161 |        161 |                       _socket
import time:      1475 |       1636 |                     socket
import time:       136 |        136 |                     pandas._testing._random
import time:       165 |        165 |                     pandas._testing.contexts
import time:       741 |       2676 |                   pandas._testing._io
import time:       195 |        195 |                   pandas._testing._warnings
import time:       192 |        192 |                     pandas._libs.testing
import time:       256 |        447 |                   pandas._testing.asserters
import time:       115 |        115 |                   pandas._testing.compat
import time:       514 |       3945 |                 pandas._testing
import time:       107 |       4051 |               pandas.testing
import time:       151 |        151 |               pandas.util._print_versions
import time:       128 |        128 |                 pandas.io.clipboards
import time:        92 |         92 |                       backports_abc
import time:       553 |        645 |                     pandas._libs.parsers
import time:       149 |        149 |                     pandas.io.excel._util
import time:       404 |        404 |                           pandas.io.parsers.base_parser
import time:       174 |        577 |                         pandas.io.parsers.arrow_parser_wrapper
import time:       263 |        263 |                         pandas.io.parsers.c_parser_wrapper
import time:       305 |        305 |                         pandas.io.parsers.python_parser
import time:      1396 |       2539 |                       pandas.io.parsers.readers
import time:       117 |       2656 |                     pandas.io.parsers
import time:       198 |        198 |                     pandas.io.excel._odfreader
import time:       276 |        276 |                     pandas.io.excel._openpyxl
import time:       273 |        273 |                     pandas.io.excel._pyxlsb
import time:       186 |        186 |                     pandas.io.excel._xlrd
import time:      1271 |       5652 |                   pandas.io.excel._base
import time:       191 |        191 |                     pandas._libs.json
import time:       216 |        407 |                   pandas.io.excel._odswriter
import time:       209 |        209 |                   pandas.io.excel._xlsxwriter
import time:       129 |       6396 |                 pandas.io.excel
import time:       217 |        217 |                 pandas.io.feather_format
import time:       126 |        126 |                 pandas.io.gbq
import time:       391 |        391 |                 pandas.io.html
import time:       171 |        171 |                     pandas.io.json._normalize
import time:       156 |        156 |                     pandas.io.json._table_schema
import time:       890 |       1215 |                   pandas.io.json._json
import time:       126 |       1341 |                 pandas.io.json
import time:       144 |        144 |                 pandas.io.orc
import time:       383 |        383 |                 pandas.io.parquet
import time:       181 |        181 |                   pandas.compat.pickle_compat
import time:       316 |        496 |                 pandas.io.pickle
import time:       388 |        388 |                   pandas.core.computation.pytables
import time:      1259 |       1647 |                 pandas.io.pytables
import time:       262 |        262 |                   pandas.io.sas.sasreader
import time:       127 |        389 |                 pandas.io.sas
import time:       119 |        119 |                 pandas.io.spss
import time:       573 |        573 |                 pandas.io.sql
import time:      1100 |       1100 |                 pandas.io.stata
import time:       683 |        683 |                 pandas.io.xml
import time:       257 |      14381 |               pandas.io.api
import time:       120 |        120 |               pandas.util._tester
import time:        94 |         94 |               pandas._version
import time:       345 |     139475 |             pandas
import time:      2254 |     142058 |           skrf.io.general
import time:      1997 |       1997 |           skrf.io.mdif
import time:       859 |        859 |                 skrf.data
import time:      4365 |       4365 |                   skrf.media.media
import time:       891 |       5256 |                 skrf.media.freespace
import time:      1202 |       7316 |               skrf.media.circularWaveguide
import time:      1162 |       1162 |                 skrf.tlineFunctions
import time:       810 |        810 |                 skrf.media.distributedCircuit
import time:      1205 |       3176 |               skrf.media.coaxial
import time:      1565 |       1565 |               skrf.media.cpw
import time:       854 |        854 |               skrf.media.definedAEpTandZ0
import time:      2520 |       2520 |               skrf.media.mline
import time:      1219 |       1219 |               skrf.media.rectangularWaveguide
import time:       358 |      17005 |             skrf.media
import time:      4276 |      21281 |           skrf.io.touchstone
import time:       409 |     396974 |         skrf.io
import time:        22 |     396995 |       skrf.io.touchstone
import time:     33318 |     969243 |     skrf.calibration.calibration
import time:       854 |        854 |     skrf.calibration.calibrationSet
import time:      7567 |       7567 |     skrf.calibration.deembedding
import time:       448 |     978110 |   skrf.calibration
import time:      3230 |       3230 |   skrf.circuit
import time:      1692 |       1692 |   skrf.instances
import time:      3592 |       3592 |   skrf.qfactor
import time:       954 |        954 |   skrf.taper
import time:      8039 |       8039 |   skrf.vectorFitting
import time:        94 |         94 |   vi
import time:      1890 |     997597 | skrf

A better way to view might be a flamegraph like this one:

image

Will let you know what more I can find

@cafeclimber
Copy link
Contributor

Ok so going through some stuff, I definitely think lazy loading is called for. Especially for things that aren't required for all operations. I often don't need to plot, so I shouldn't be loading matplotlib, even if it's available, at least until I use it. Especially considering roughly 1/3rd of the startup time is due to just mpl. I was able to shave off 300ms just by moving the pandas imports in the io module to the respective functions that need them.

@jasondurbin
Copy link

+1 for lazy loading, because I was the one who brought the issue up.

@cafeclimber
Copy link
Contributor

I'll try to take a crack at it today!

@cafeclimber cafeclimber linked a pull request May 6, 2024 that will close this issue
@jhillairet jhillairet linked a pull request May 10, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Improvements Improvements of existing feature
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants