**When class is created it checks if it has metaclass defined. If not, it recursively checks if any of his parents has it defined and eventually comes to type.**
**When class is created it checks if it has metaclass defined. If not, it recursively checks if any of his parents has it defined and eventually comes to type.**
```python
```python
class MyClass(metaclass=MyMetaClass):
class MyClass(metaclass=MyMetaClass):
def __init__(self):
def __init__(self):
@ -1508,7 +1511,8 @@ Line # Hits Time Per Hit % Time Line Contents
```
```
### Call Graph
### Call Graph
#### Generates a PNG image of call graph with highlighted bottlenecks.
**Generates a PNG image of call graph with highlighted bottlenecks.**
```python
```python
# $ pip3 install pycallgraph
# $ pip3 install pycallgraph
from pycallgraph import output, PyCallGraph
from pycallgraph import output, PyCallGraph
@ -1554,20 +1558,24 @@ index = <array>.argmin([axis])
left = [[0.1], [0.6], [0.8]] # Shape: (3, 1)
left = [[0.1], [0.6], [0.8]] # Shape: (3, 1)
right = [ 0.1 , 0.6 , 0.8 ] # Shape: (3)
right = [ 0.1 , 0.6 , 0.8 ] # Shape: (3)
```
```
**1. If array shapes differ, left-pad the smaller shape with ones.**
**1. If array shapes differ, left-pad the smaller shape with ones.**
```python
```python
left = [[0.1], [0.6], [0.8]] # Shape: (3, 1)
left = [[0.1], [0.6], [0.8]] # Shape: (3, 1)
right = [[0.1 , 0.6 , 0.8]] # Shape: (1, 3) <-!
right = [[0.1 , 0.6 , 0.8]] # Shape: (1, 3) <-!
```
```
**2. If any dimensions differ in size, expand the ones that have size 1 by duplicating their elements.**
**2. If any dimensions differ in size, expand the ones that have size 1 by duplicating their elements.**