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 details)
File details
Details for the file aop-0.2.0.tar.gz
.
File metadata
- Download URL: aop-0.2.0.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.9.1 setuptools/36.5.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.5.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bb26687689e115307fc06264867528181798d5d00982412e1aeb1f387159ac4 |
|
MD5 | c8ff428684a7818253f7e841c8831305 |
|
BLAKE2b-256 | d452535986e3568ac6f14737e272b65d7eae99beb586bf1b88457ef805df34fc |