Metadata-Version: 2.1
Name: export
Version: 0.2.0
Summary: Control module exports
Home-page: https://github.com/tombulled/export
License: MIT
Keywords: python,export,public,private
Author: Tom Bulled
Author-email: 26026015+tombulled@users.noreply.github.com
Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Project-URL: Documentation, https://github.com/tombulled/export
Project-URL: Repository, https://github.com/tombulled/export
Description-Content-Type: text/markdown

# export
Control module exports

## About
This library dynamically generates an `__all__` attribute for modules

## Usage

### Private by Default
*Does* export objects marked **public**, *doesn't* export everything else

```python
# lib.py

import export

export.init(default=export.PRIVATE)

@export.public
def foo():
    pass

def bar():
    pass

def baz():
    pass
```

```python
>>> import lib
>>> 
>>> lib.__all__
['foo']
```

### Public by Default
*Doesn't* export objects marked **private**, *does* export everything else

```python
# lib.py

import export

export.init(default=export.PUBLIC)

def foo():
    pass

@export.private
def bar():
    pass

@export.private
def baz():
    pass
```

```python
>>> import lib
>>> 
>>> lib.__all__
['export', 'foo']
```
