Skip to content

Commit e7d0c91

Browse files
committed
Add compatablity with upstream wildcard imports
Fixes #19
1 parent 883adad commit e7d0c91

File tree

11 files changed

+54
-7
lines changed

11 files changed

+54
-7
lines changed

gsw_xarray/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
import gsw
66
from ._core import _wrapped_funcs
7+
from ._util import submodule_all_compat
8+
79

810
_compat = {
911
"conversions",
@@ -16,6 +18,8 @@
1618
}
1719
_compat_modules = {name: import_module(f".{name}", "gsw_xarray") for name in _compat}
1820

21+
__all__ = submodule_all_compat("gsw") + list(_compat)
22+
1923
# See PEP 562
2024
def __getattr__(name):
2125
if name in _compat:

gsw_xarray/_core.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from ._cf_names import _func_standard_name_units
77

8+
89
def cf_attrs(standard_name, units, extra=None):
910
def cf_attrs_decorator(func):
1011
@wraps(func)
@@ -20,6 +21,7 @@ def cf_attrs_wrapper(*args, **kwargs):
2021

2122
return cf_attrs_decorator
2223

24+
2325
def _init_funcs():
2426
_wrapped_funcs = {}
2527
for func, name, units in _func_standard_name_units:

gsw_xarray/_util.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,18 @@ def getattr_(name):
1616

1717
def submodule_dir_compat(submodule_name):
1818
submodule = import_module(submodule_name)
19+
1920
def dir_():
2021
return dir(submodule)
22+
2123
return dir_
24+
25+
26+
def submodule_all_compat(submodule_name):
27+
submodule = import_module(submodule_name)
28+
try:
29+
return submodule.__all__
30+
except AttributeError:
31+
all = dir(submodule)
32+
# as per python docs, an import * should return everything not starting with "_"
33+
return list(filter(lambda s: not s.startswith("_"), all))

gsw_xarray/conversions.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from ._util import submodule_attr_compat, submodule_dir_compat
1+
from ._util import submodule_attr_compat, submodule_dir_compat, submodule_all_compat
22

33
__getattr__ = submodule_attr_compat("gsw.conversions")
44
__dir__ = submodule_dir_compat("gsw.conversions")
5+
__all__ = submodule_all_compat("gsw.conversions")

gsw_xarray/density.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from ._util import submodule_attr_compat, submodule_dir_compat
1+
from ._util import submodule_attr_compat, submodule_dir_compat, submodule_all_compat
22

33
__getattr__ = submodule_attr_compat("gsw.density")
44
__dir__ = submodule_dir_compat("gsw.density")
5+
__all__ = submodule_all_compat("gsw.density")

gsw_xarray/energy.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from ._util import submodule_attr_compat, submodule_dir_compat
1+
from ._util import submodule_attr_compat, submodule_dir_compat, submodule_all_compat
22

33
__getattr__ = submodule_attr_compat("gsw.energy")
44
__dir__ = submodule_dir_compat("gsw.energy")
5+
__all__ = submodule_all_compat("gsw.energy")

gsw_xarray/freezing.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from ._util import submodule_attr_compat, submodule_dir_compat
1+
from ._util import submodule_attr_compat, submodule_dir_compat, submodule_all_compat
22

33
__getattr__ = submodule_attr_compat("gsw.freezing")
44
__dir__ = submodule_dir_compat("gsw.freezing")
5+
__all__ = submodule_all_compat("gsw.freezing")

gsw_xarray/geostrophy.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from ._util import submodule_attr_compat, submodule_dir_compat
1+
from ._util import submodule_attr_compat, submodule_dir_compat, submodule_all_compat
22

33
__getattr__ = submodule_attr_compat("gsw.geostrophy")
44
__dir__ = submodule_dir_compat("gsw.geostrophy")
5+
__all__ = submodule_all_compat("gsw.geostrophy")

gsw_xarray/ice.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from ._util import submodule_attr_compat, submodule_dir_compat
1+
from ._util import submodule_attr_compat, submodule_dir_compat, submodule_all_compat
22

33
__getattr__ = submodule_attr_compat("gsw.ice")
44
__dir__ = submodule_dir_compat("gsw.ice")
5+
__all__ = submodule_all_compat("gsw.ice")

gsw_xarray/stability.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from ._util import submodule_attr_compat, submodule_dir_compat
1+
from ._util import submodule_attr_compat, submodule_dir_compat, submodule_all_compat
22

33
__getattr__ = submodule_attr_compat("gsw.stability")
44
__dir__ = submodule_dir_compat("gsw.stability")
5+
__all__ = submodule_all_compat("gsw.stability")

0 commit comments

Comments
 (0)