def is_some_dict(arg, allow_none=False):
    """
    >>> is_some_dict(3)
    False
    >>> is_some_dict(3.5)
    False
    >>> is_some_dict('hi')
    False
    >>> is_some_dict([1, 2, 3])
    False
    >>> is_some_dict([[1, 2, 3], [1, 2, 3]])
    False
    >>> import numpy as np
    >>> is_some_dict(np.array([1, 2, 3]))
    False
    >>> is_some_dict(np.array([[1, 2, 3], [1, 2, 3]]))
    False
    >>> is_some_dict({'name': 'Paul', 'surname': 'Bilokon'})
    True
    >>> is_some_dict(col.OrderedDict((('name', 'Paul'), ('surname', 'Bilokon'))))
    True
    >>> is_some_dict(None)
    False
    >>> is_some_dict(None, allow_none=True)
    True
    """
    return allow_none and arg is None or hasattr(arg, 'keys')
