Metadata-Version: 2.1
Name: modulemeta
Version: 0.2.0a1
Summary: A Module metaclass, to make your classes into modules.
Home-page: https://github.com/megawidget/python-module
Author: Igor Kaplounenko
Author-email: megawidget@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Development Status :: 3 - Alpha
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.5
Description-Content-Type: text/markdown
License-File: LICENSE

# ModuleMeta

Python modules are hard.  `modulemeta` attempts to make them easier to write in the interpreter.

## Basic Usage

```
>>> from modulemeta import Module
>>> class Wat(metaclass=Module):
...   _ermelon = 5
...
...   def ermelon():  # type: ignore[misc]
...     return _ermelon
...
>>> Wat.ermelon()
5
>>> Wat
<module 'Wat'>
```


## Inheritance

Shockingly, modules cannot be inherited from, therefore they are treated as metaclasses:

```
from modulemeta import Module


class Wat(metaclass=Module):
  pass


class Wat2(metaclass=Wat):  # type: ignore[misc]
  pass
```


