ericphanson / ExplicitImports.jl

Developer tooling for Julia namespace management: detecting implicit imports, improper explicit imports, and improper qualified accesses
https://ericphanson.github.io/ExplicitImports.jl/
MIT License
62 stars 2 forks source link

format `using` statements #27

Closed ericphanson closed 3 months ago

ericphanson commented 3 months ago

I prefer this format a bit more:

julia> print_explicit_imports(MixedModels)
Module MixedModels is relying on implicit imports for 162 names. These could be explicitly imported as follows:

```julia
using Arrow: Arrow
using BSplineKit: BSplineKit, BSplineOrder, Derivative, Natural,
                  SplineInterpolation, interpolate
using DataAPI: DataAPI
using Distributions: Distributions, Chisq, Distribution, ccdf, estimate
using GLM: GLM, Bernoulli, Binomial, Gamma, GeneralizedLinearModel,
           IdentityLink, InverseGaussian, InverseLink, LinearModel, LogLink,
           LogitLink, Normal, Poisson, ProbitLink, SqrtLink, glm
using JSON3: JSON3
using LinearAlgebra: LinearAlgebra, Adjoint, BLAS, ColumnNorm, Diagonal,
                     Hermitian, I, LAPACK, LowerTriangular, SVD,
                     SymTridiagonal, Symmetric, UpperTriangular, cond, diag,
                     diagind, dot, eigen, isdiag, ldiv!, lmul!, logdet, mul!,
                     norm, normalize, normalize!, qr, rank, rdiv!, rmul!, svd,
                     tr, tril!
using Markdown: Markdown
using NLopt: NLopt, ftol_abs, ftol_rel, initial_step, maxtime, xtol_abs,
             xtol_rel
using PooledArrays: PooledArrays, PooledArray
using PrecompileTools: PrecompileTools, @compile_workload, @setup_workload
using ProgressMeter: ProgressMeter, Progress, ProgressUnknown, finish!, next!
using Random: Random, AbstractRNG, randn!
using SparseArrays: SparseArrays, SparseMatrixCSC, SparseVector, dropzeros!,
                    nnz, nonzeros, nzrange, rowvals, sparse
using StaticArrays: StaticArrays, SVector
using Statistics: Statistics
using StatsAPI: StatsAPI
using StatsBase: StatsBase, CoefTable, aic, aicc, bic, coef, coeftable, confint,
                 deviance, dof, dof_residual, fit, fit!, fitted, isfitted,
                 islinear, leverage, loglikelihood, mean, meanresponse,
                 model_response, nobs, predict, quantile, r2, residuals,
                 responsename, std, stderror, summarystats, vcov, weights
using StatsModels: StatsModels, @formula, AbstractContrasts, AbstractTerm,
                   CategoricalTerm, ConstantTerm, DummyCoding, EffectsCoding,
                   FormulaTerm, FunctionTerm, HelmertCoding, HypothesisCoding,
                   InteractionTerm, InterceptTerm, MatrixTerm, SeqDiffCoding,
                   Term, apply_schema, coefnames, drop_term, formula,
                   modelcols, modelmatrix, response, term
using StructTypes: StructTypes
using Tables: Tables, columntable
using TypedTables: TypedTables, DictTable, FlexTable, Table, rows

Additionally, module MixedModels has stale explicit imports for these unused names:


However, something similar to the 1-per-line way can still be obtained:

````julia
julia> print_explicit_imports(MixedModels; linewidth=0)
Module MixedModels is relying on implicit imports for 162 names. These could be explicitly imported as follows:

```julia
using Arrow: Arrow
using BSplineKit: BSplineKit,
                  BSplineOrder,
                  Derivative,
                  Natural,
                  SplineInterpolation,
                  interpolate
using DataAPI: DataAPI
using Distributions: Distributions,
                     Chisq,
                     Distribution,
                     ccdf,
                     estimate
using GLM: GLM,
           Bernoulli,
           Binomial,
           Gamma,
           GeneralizedLinearModel,
           IdentityLink,
           InverseGaussian,
           InverseLink,
           LinearModel,
           LogLink,
           LogitLink,
           Normal,
           Poisson,
           ProbitLink,
           SqrtLink,
           glm
using JSON3: JSON3
using LinearAlgebra: LinearAlgebra,
                     Adjoint,
                     BLAS,
                     ColumnNorm,
                     Diagonal,
                     Hermitian,
                     I,
                     LAPACK,
                     LowerTriangular,
                     SVD,
                     SymTridiagonal,
                     Symmetric,
                     UpperTriangular,
                     cond,
                     diag,
                     diagind,
                     dot,
                     eigen,
                     isdiag,
                     ldiv!,
                     lmul!,
                     logdet,
                     mul!,
                     norm,
                     normalize,
                     normalize!,
                     qr,
                     rank,
                     rdiv!,
                     rmul!,
                     svd,
                     tr,
                     tril!
using Markdown: Markdown
using NLopt: NLopt,
             ftol_abs,
             ftol_rel,
             initial_step,
             maxtime,
             xtol_abs,
             xtol_rel
using PooledArrays: PooledArrays,
                    PooledArray
using PrecompileTools: PrecompileTools,
                       @compile_workload,
                       @setup_workload
using ProgressMeter: ProgressMeter,
                     Progress,
                     ProgressUnknown,
                     finish!,
                     next!
using Random: Random,
              AbstractRNG,
              randn!
using SparseArrays: SparseArrays,
                    SparseMatrixCSC,
                    SparseVector,
                    dropzeros!,
                    nnz,
                    nonzeros,
                    nzrange,
                    rowvals,
                    sparse
using StaticArrays: StaticArrays,
                    SVector
using Statistics: Statistics
using StatsAPI: StatsAPI
using StatsBase: StatsBase,
                 CoefTable,
                 aic,
                 aicc,
                 bic,
                 coef,
                 coeftable,
                 confint,
                 deviance,
                 dof,
                 dof_residual,
                 fit,
                 fit!,
                 fitted,
                 isfitted,
                 islinear,
                 leverage,
                 loglikelihood,
                 mean,
                 meanresponse,
                 model_response,
                 nobs,
                 predict,
                 quantile,
                 r2,
                 residuals,
                 responsename,
                 std,
                 stderror,
                 summarystats,
                 vcov,
                 weights
using StatsModels: StatsModels,
                   @formula,
                   AbstractContrasts,
                   AbstractTerm,
                   CategoricalTerm,
                   ConstantTerm,
                   DummyCoding,
                   EffectsCoding,
                   FormulaTerm,
                   FunctionTerm,
                   HelmertCoding,
                   HypothesisCoding,
                   InteractionTerm,
                   InterceptTerm,
                   MatrixTerm,
                   SeqDiffCoding,
                   Term,
                   apply_schema,
                   coefnames,
                   drop_term,
                   formula,
                   modelcols,
                   modelmatrix,
                   response,
                   term
using StructTypes: StructTypes
using Tables: Tables,
              columntable
using TypedTables: TypedTables,
                   DictTable,
                   FlexTable,
                   Table,
                   rows

Additionally, module MixedModels has stale explicit imports for these unused names:

codecov-commenter commented 3 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.93%. Comparing base (60f2e90) to head (934633e).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #27 +/- ## ========================================== + Coverage 95.80% 95.93% +0.13% ========================================== Files 5 5 Lines 548 566 +18 ========================================== + Hits 525 543 +18 Misses 23 23 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.