# Is it possible to import everything but?

**URL:** <https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945>\
**Category:** Internals & Design\
**Created:** [November 4, 2021, 11:36am UTC](https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945 "2021-11-04T11:36:42Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [November 4, 2021, 11:36am UTC](https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945/1 "2021-11-04T11:36:42Z")

</div>

Both PlutoUI and Makie export `Slider`. It seems like the right type name for each, but causes naming conflics in notebooks. One then has to qualify the usage by `PlutoUI.Slider`. Is it possible to import _everything but_ Slider from Makie? Something like `using Makie: -Slider`

---

<div class="post-metadata">

**Author:** ![Fliks](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fliks/32/2494_2.png) [@Fliks](https://discourse.julialang.org/u/Fliks)\
**Post date:** [November 4, 2021, 12:29pm UTC](https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945/2 "2021-11-04T12:29:26Z")

</div>

Yes you can do:

```julia
using Makie: Slider as MSlider

```

as described here:  
[https://docs.julialang.org/en/v1/manual/modules/#Renaming-with-as](https://docs.julialang.org/en/v1/manual/modules/#Renaming-with-as)

This way you avoid the name clash and can use the Makie Slider as MSlider.

---

<div class="post-metadata">

**Author:** ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)\
**Post date:** [November 4, 2021, 2:48pm UTC](https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945/3 "2021-11-04T14:48:39Z")

</div>

Awesome. I did not know this!

---

<div class="post-metadata">

**Author:** ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)\
**Post date:** [November 4, 2021, 3:36pm UTC](https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945/4 "2021-11-04T15:36:56Z")

</div>

It’s also worth noting that you can do, even on old version of julia:

```julia
using Makie
using PlutoUI

const Slider = Pluto.Slider
const MSlider = Makie.Slider

```

Further you can, if the arguments don’t over-lap do manual method merging.  
For example, lets say only if the first argument is a `Figure` should it use the Makie one.

```julia
using Makie
using PlutoUI

Slider(f::Figure, args...; args...) = Makie.Slider(f, args...; kwargs...)
Slider(args...; args...) = PlutoUI.Slider(f, args...; kwargs...)

```

---

<div class="post-metadata">

**Author:** ![Jean\_Michel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jean_michel/32/8282_2.png) [@Jean\_Michel](https://discourse.julialang.org/u/Jean_Michel)\
**Post date:** [November 4, 2021, 9:54pm UTC](https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945/5 "2021-11-04T21:54:59Z")

</div>

I have a macro (the package UsingMerge) which automates this process

---

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [February 10, 2022, 12:42pm UTC](https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945/6 "2022-02-10T12:42:25Z")

</div>

if I do

```julia
using Makie: Slider as MSlider

```

, then the other functions from Makie are not imported. But if I do an additional `using Makie`, then the problem is back. Your answer tells me how to import something with another name, but I am still not sure exactly how to import everything but X. Any idea on how that can be done?

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [February 10, 2022, 1:48pm UTC](https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945/7 "2022-02-10T13:48:48Z")

</div>

You can just import everything and then provide a definition for the thing you don’t want to import. That causes it not to be imported. Example:

```julia
using Makie
Slider = "small burger"

```

The solution @oxinabox provides already does this with const bindings for `Slider` and `MSlider`. Or if you prefer a different slider from another package you can do this:

```julia
using Makie
using PlutoUI: Slider

```

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [February 10, 2022, 2:04pm UTC](https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945/8 "2022-02-10T14:04:47Z")

</div>

What we really need are general regex transformations on import:

```julia
using Makie: r"\b([^aeiou]+)(\w+)\b" => s"\2\1ay"
iderSlay # Makie symbols are now in pig Latin

```

Might be a good PR to work on for 4/1/22?

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [February 10, 2022, 3:16pm UTC](https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945/9 "2022-02-10T15:16:09Z")

</div>

I can only assume/hope this is trolling… if so 👏

---

<div class="post-metadata">

**Author:** ![Perrin\_Meyer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/perrin_meyer/32/15686_2.png) [@Perrin\_Meyer](https://discourse.julialang.org/u/Perrin_Meyer)\
**Post date:** [February 10, 2022, 6:22pm UTC](https://discourse.julialang.org/t/is-it-possible-to-import-everything-but/70945/10 "2022-02-10T18:22:34Z")

</div>

but only if regex import fully supports Unicode, so Physicists can auto-magically change notation…
