summaryrefslogtreecommitdiff
path: root/venv/Lib/site-packages/astroid/brain/brain_numpy_utils.py
diff options
context:
space:
mode:
authorpravindalve2020-02-14 13:04:30 +0530
committerGitHub2020-02-14 13:04:30 +0530
commita80b6726f5f70d9a2ec1cbf361e7f607849343bf (patch)
tree333d34f58255003939e70b800d2cd57e40253b6b /venv/Lib/site-packages/astroid/brain/brain_numpy_utils.py
parent8189de7d424964aac11b81c8297b7af7fcedd2b8 (diff)
parentdf141f35dccc6b21fcfa575707c6435a39d0002f (diff)
downloadChemical-Simulator-GUI-a80b6726f5f70d9a2ec1cbf361e7f607849343bf.tar.gz
Chemical-Simulator-GUI-a80b6726f5f70d9a2ec1cbf361e7f607849343bf.tar.bz2
Chemical-Simulator-GUI-a80b6726f5f70d9a2ec1cbf361e7f607849343bf.zip
Merge pull request #2 from pravindalve/master
Code restructured, some ui improvizations, undo redo implementation and Binary envelops utility
Diffstat (limited to 'venv/Lib/site-packages/astroid/brain/brain_numpy_utils.py')
-rw-r--r--venv/Lib/site-packages/astroid/brain/brain_numpy_utils.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/venv/Lib/site-packages/astroid/brain/brain_numpy_utils.py b/venv/Lib/site-packages/astroid/brain/brain_numpy_utils.py
new file mode 100644
index 0000000..2bad01e
--- /dev/null
+++ b/venv/Lib/site-packages/astroid/brain/brain_numpy_utils.py
@@ -0,0 +1,56 @@
+# Copyright (c) 2018-2019 hippo91 <guillaume.peillex@gmail.com>
+
+# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
+# For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
+
+
+"""Different utilities for the numpy brains"""
+
+
+import astroid
+
+
+def infer_numpy_member(src, node, context=None):
+ node = astroid.extract_node(src)
+ return node.infer(context=context)
+
+
+def _is_a_numpy_module(node: astroid.node_classes.Name) -> bool:
+ """
+ Returns True if the node is a representation of a numpy module.
+
+ For example in :
+ import numpy as np
+ x = np.linspace(1, 2)
+ The node <Name.np> is a representation of the numpy module.
+
+ :param node: node to test
+ :return: True if the node is a representation of the numpy module.
+ """
+ module_nickname = node.name
+ potential_import_target = [
+ x for x in node.lookup(module_nickname)[1] if isinstance(x, astroid.Import)
+ ]
+ for target in potential_import_target:
+ if ("numpy", module_nickname) in target.names:
+ return True
+ return False
+
+
+def looks_like_numpy_member(
+ member_name: str, node: astroid.node_classes.NodeNG
+) -> bool:
+ """
+ Returns True if the node is a member of numpy whose
+ name is member_name.
+
+ :param member_name: name of the member
+ :param node: node to test
+ :return: True if the node is a member of numpy
+ """
+ return (
+ isinstance(node, astroid.Attribute)
+ and node.attrname == member_name
+ and isinstance(node.expr, astroid.Name)
+ and _is_a_numpy_module(node.expr)
+ )