Organize top-level imports for lalib
- make `GF2`, `one`, and `zero`, defined in the `lalib.elements.gf2` module, available as top-level imports for the `lalib` package via `from lalib import *` - provide some code snippets in the package's docstring - test the star import
This commit is contained in:
parent
3cfc0db136
commit
62b25f66d9
2 changed files with 45 additions and 0 deletions
|
@ -4,10 +4,26 @@ First, verify that your installation of `lalib` works:
|
|||
>>> import lalib
|
||||
>>> lalib.__version__ != '0.0.0'
|
||||
True
|
||||
|
||||
`lalib` exposes its very own "words" (i.e., its public API) at the root
|
||||
of the package. They can be imported all at once with:
|
||||
|
||||
>>> from lalib import *
|
||||
|
||||
In addition to Python's built-in numbers, `lalib` comes with a couple of
|
||||
specific numeric data types, for example, `one` and `zero` representing
|
||||
the two elements of the Galois field `GF2`:
|
||||
|
||||
>>> one + one
|
||||
zero
|
||||
>>> one + zero
|
||||
one
|
||||
"""
|
||||
|
||||
from importlib import metadata
|
||||
|
||||
from lalib.elements import gf2
|
||||
|
||||
|
||||
try:
|
||||
pkg_info = metadata.metadata(__name__)
|
||||
|
@ -24,4 +40,15 @@ else:
|
|||
del pkg_info
|
||||
|
||||
|
||||
GF2, one, zero = gf2.GF2, gf2.one, gf2.zero
|
||||
|
||||
|
||||
del gf2
|
||||
del metadata
|
||||
|
||||
|
||||
__all__ = (
|
||||
"GF2",
|
||||
"one",
|
||||
"zero",
|
||||
)
|
||||
|
|
18
tests/test_top_level_imports.py
Normal file
18
tests/test_top_level_imports.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
"""Test top-level imports for `lalib`."""
|
||||
|
||||
import lalib as top_level
|
||||
|
||||
|
||||
def test_top_level_imports():
|
||||
"""Verify `from lalib import *` works."""
|
||||
environment = {}
|
||||
|
||||
exec("...", environment, environment) # noqa: S102
|
||||
defined_vars_before = set(environment)
|
||||
|
||||
exec("from lalib import *", environment, environment) # noqa: S102
|
||||
defined_vars_after = set(environment)
|
||||
|
||||
new_vars = defined_vars_after - defined_vars_before
|
||||
|
||||
assert new_vars == set(top_level.__all__)
|
Loading…
Reference in a new issue