Aspect-oriented programming
Project description
# Advice
[Aspect-oriented programming](https://en.wikipedia.org/wiki/Aspect-oriented_programming)
## TODO
1. FIX starred import
1. Patch already imported objects (`patch_project`)
## Usage
```python
import aop
def multiply(context):
print(context.args)
print(context.kwargs)
yield
context.result *= 100
aop.register(
handler=multiply,
modules=aop.match(equals='math'),
targets=aop.match(regexp='(sin|cos)')
)
```
Ok, let's check:
```python
In [2]: import math
In [3]: math.cos(0)
(0,)
{}
Out[3]: 100.0
```
[Aspect-oriented programming](https://en.wikipedia.org/wiki/Aspect-oriented_programming)
## TODO
1. FIX starred import
1. Patch already imported objects (`patch_project`)
## Usage
```python
import aop
def multiply(context):
print(context.args)
print(context.kwargs)
yield
context.result *= 100
aop.register(
handler=multiply,
modules=aop.match(equals='math'),
targets=aop.match(regexp='(sin|cos)')
)
```
Ok, let's check:
```python
In [2]: import math
In [3]: math.cos(0)
(0,)
{}
Out[3]: 100.0
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aop-0.2.0.tar.gz
(4.4 kB
view hashes)