summaryrefslogtreecommitdiff
path: root/venv/Lib/site-packages/astroid/brain/brain_argparse.py
diff options
context:
space:
mode:
authorlucaszhao192020-02-05 18:02:20 +0530
committerlucaszhao192020-02-05 18:02:20 +0530
commitae7090629a8beae3064eee7128856d5d3aeaa604 (patch)
tree939eedc5d96fd17bc5af34bde6524d3e4b3a7cfa /venv/Lib/site-packages/astroid/brain/brain_argparse.py
parent38dbff48f57c403abdc575a9cd9d0bbf512bfef6 (diff)
parent190966e010e321e4df56d40104ec80467a870e53 (diff)
downloadChemical-Simulator-GUI-ae7090629a8beae3064eee7128856d5d3aeaa604.tar.gz
Chemical-Simulator-GUI-ae7090629a8beae3064eee7128856d5d3aeaa604.tar.bz2
Chemical-Simulator-GUI-ae7090629a8beae3064eee7128856d5d3aeaa604.zip
Revamped and merged Input/Results DockWidgets, Newly implemented variables for MaterialStream and four UnitOps
Diffstat (limited to 'venv/Lib/site-packages/astroid/brain/brain_argparse.py')
-rw-r--r--venv/Lib/site-packages/astroid/brain/brain_argparse.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/venv/Lib/site-packages/astroid/brain/brain_argparse.py b/venv/Lib/site-packages/astroid/brain/brain_argparse.py
new file mode 100644
index 0000000..d489911
--- /dev/null
+++ b/venv/Lib/site-packages/astroid/brain/brain_argparse.py
@@ -0,0 +1,33 @@
+from astroid import MANAGER, arguments, nodes, inference_tip, UseInferenceDefault
+
+
+def infer_namespace(node, context=None):
+ callsite = arguments.CallSite.from_call(node)
+ if not callsite.keyword_arguments:
+ # Cannot make sense of it.
+ raise UseInferenceDefault()
+
+ class_node = nodes.ClassDef("Namespace", "docstring")
+ class_node.parent = node.parent
+ for attr in set(callsite.keyword_arguments):
+ fake_node = nodes.EmptyNode()
+ fake_node.parent = class_node
+ fake_node.attrname = attr
+ class_node.instance_attrs[attr] = [fake_node]
+ return iter((class_node.instantiate_class(),))
+
+
+def _looks_like_namespace(node):
+ func = node.func
+ if isinstance(func, nodes.Attribute):
+ return (
+ func.attrname == "Namespace"
+ and isinstance(func.expr, nodes.Name)
+ and func.expr.name == "argparse"
+ )
+ return False
+
+
+MANAGER.register_transform(
+ nodes.Call, inference_tip(infer_namespace), _looks_like_namespace
+)