# import-from **Symbol:** `import-from` **Syntax:** - `(import-from MODULE NAME ...)` -- import named attributes from MODULE - `(import-from MODULE [NAME as: BIND] ...)` -- with per-name renames - `(import-from .MODULE NAME ...)` -- relative module, named attributes - Mix of plain symbols and `[NAME as: BIND]` forms is allowed. `MODULE` is an unquoted symbol (same leading-dot convention as `import`). Each `NAME` is a symbol used as both the attribute name and the binding name unless a `[NAME as: BIND]` member overrides the binding. A long member list wraps in the parenthesised form, with the continuation lines indented inside the parens; `import-from` has no block layout of its own. **Use-case:** Import specific names from a module into the current namespace. Mirrors Python's `from MODULE import NAME [as BIND], ...`. A member that names a not-yet-imported submodule is imported on demand, so `(import-from pkg sub)` works even when `pkg`'s `__init__` does not import `sub` (matching CPython's `from pkg import sub`). **Statement value:** `None`. **Examples:** ```koskari ;; Single name from absolute module (import-from os path) ;; Multiple names (import-from os path sep getcwd) ;; With a rename (import-from os [path as: osp] sep) ;; From relative module (import-from .util helper format) ;; Relative with rename (import-from .util [helper as: h]) ``` ## Related - [use](use.md) -- the koskari-native import: one *feature* per member, carrying the runtime, `compile/`, and `layout/` facets together. - [import-all-from](import-all-from.md) -- Python's `from M import *`.