+
diff --git a/python/edu/resources/community_progress_tail.png b/python/edu/resources/community_progress_tail.png
new file mode 100644
index 000000000000..b6f7661c913c
Binary files /dev/null and b/python/edu/resources/community_progress_tail.png differ
diff --git a/python/edu/resources/developSlogan.png b/python/edu/resources/developSlogan.png
new file mode 100644
index 000000000000..4200ac2d1339
Binary files /dev/null and b/python/edu/resources/developSlogan.png differ
diff --git a/python/edu/resources/fileTemplates/internal/Python Script.py.ft b/python/edu/resources/fileTemplates/internal/Python Script.py.ft
new file mode 100644
index 000000000000..edba329d3074
--- /dev/null
+++ b/python/edu/resources/fileTemplates/internal/Python Script.py.ft
@@ -0,0 +1 @@
+__author__ = '$USER'
diff --git a/python/edu/resources/fileTemplates/internal/Python Unit Test.py.ft b/python/edu/resources/fileTemplates/internal/Python Unit Test.py.ft
new file mode 100644
index 000000000000..bc5c1af456cb
--- /dev/null
+++ b/python/edu/resources/fileTemplates/internal/Python Unit Test.py.ft
@@ -0,0 +1,10 @@
+__author__ = '$USER'
+
+import unittest
+
+class MyTestCase(unittest.TestCase):
+ def test_something(self):
+ self.assertEqual(True, False)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/python/edu/resources/fileTemplates/internal/Setup Script.py.ft b/python/edu/resources/fileTemplates/internal/Setup Script.py.ft
new file mode 100644
index 000000000000..cb9cb9b36e0b
--- /dev/null
+++ b/python/edu/resources/fileTemplates/internal/Setup Script.py.ft
@@ -0,0 +1,12 @@
+from distutils.core import setup
+
+setup(
+ name='$Package_name',
+ version='$Version',
+ packages=$PackageList,$PackageDirs
+ url='$URL',
+ license='$License',
+ author='$Author',
+ author_email='$Author_Email',
+ description='$Description'
+)
diff --git a/python/edu/resources/icon-robots.txt b/python/edu/resources/icon-robots.txt
new file mode 100644
index 000000000000..e9cf8c7fee89
--- /dev/null
+++ b/python/edu/resources/icon-robots.txt
@@ -0,0 +1,3 @@
+# Only has artwork and tips stuff
+skip: *.png
+skip: tips
diff --git a/python/edu/resources/icons/com/jetbrains/pyqt/tsFile.png b/python/edu/resources/icons/com/jetbrains/pyqt/tsFile.png
new file mode 100644
index 000000000000..b87e71b3a14f
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/pyqt/tsFile.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/pyqt/tsFile@2x.png b/python/edu/resources/icons/com/jetbrains/pyqt/tsFile@2x.png
new file mode 100644
index 000000000000..628e5af168b1
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/pyqt/tsFile@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/pyqt/uiForm.png b/python/edu/resources/icons/com/jetbrains/pyqt/uiForm.png
new file mode 100644
index 000000000000..ad5c245e8f1c
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/pyqt/uiForm.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/pyqt/uiForm@2x.png b/python/edu/resources/icons/com/jetbrains/pyqt/uiForm@2x.png
new file mode 100644
index 000000000000..a4b359a8a4fa
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/pyqt/uiForm@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/buildout/buildout.png b/python/edu/resources/icons/com/jetbrains/python/buildout/buildout.png
new file mode 100644
index 000000000000..21710ea36466
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/buildout/buildout.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/buildout/buildout@2x.png b/python/edu/resources/icons/com/jetbrains/python/buildout/buildout@2x.png
new file mode 100644
index 000000000000..e0bcb6e65933
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/buildout/buildout@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/debug/commandLine.png b/python/edu/resources/icons/com/jetbrains/python/debug/commandLine.png
new file mode 100644
index 000000000000..3d2333b0e7e8
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/debug/commandLine.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/debug/commandLine@2x.png b/python/edu/resources/icons/com/jetbrains/python/debug/commandLine@2x.png
new file mode 100644
index 000000000000..a70992337f1e
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/debug/commandLine@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/dotnet.png b/python/edu/resources/icons/com/jetbrains/python/dotnet.png
new file mode 100644
index 000000000000..b7ff8dbb0cbe
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/dotnet.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/dotnet@2x.png b/python/edu/resources/icons/com/jetbrains/python/dotnet@2x.png
new file mode 100644
index 000000000000..1c08889f8a00
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/dotnet@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/interpreterGear.png b/python/edu/resources/icons/com/jetbrains/python/interpreterGear.png
new file mode 100644
index 000000000000..ea7f94761fdb
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/interpreterGear.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x.png b/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x.png
new file mode 100644
index 000000000000..fe190f2412aa
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x_dark.png b/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x_dark.png
new file mode 100644
index 000000000000..2d77aac65fa5
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/interpreterGear@2x_dark.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/interpreterGear_dark.png b/python/edu/resources/icons/com/jetbrains/python/interpreterGear_dark.png
new file mode 100644
index 000000000000..44e79af9551d
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/interpreterGear_dark.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/jython.png b/python/edu/resources/icons/com/jetbrains/python/jython.png
new file mode 100644
index 000000000000..ed5d76a9fcd3
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/jython.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/jython@2x.png b/python/edu/resources/icons/com/jetbrains/python/jython@2x.png
new file mode 100644
index 000000000000..ff092c1449e6
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/jython@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot.png b/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot.png
new file mode 100644
index 000000000000..9118f7dfe9a8
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot@2x.png b/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot@2x.png
new file mode 100644
index 000000000000..6b4f5766e5ce
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/cyan-dot@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/lock.png b/python/edu/resources/icons/com/jetbrains/python/nodes/lock.png
new file mode 100644
index 000000000000..be02730a235a
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/lock.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/lock@2x.png b/python/edu/resources/icons/com/jetbrains/python/nodes/lock@2x.png
new file mode 100644
index 000000000000..84c278689df8
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/lock@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle.png b/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle.png
new file mode 100644
index 000000000000..c078c76171b6
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle@2x.png b/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle@2x.png
new file mode 100644
index 000000000000..1c7c45e60332
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/nodes/red-inv-triangle@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyDeleter.png b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter.png
new file mode 100644
index 000000000000..908454736bed
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x.png b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x.png
new file mode 100644
index 000000000000..5e022744fb00
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x_dark.png
new file mode 100644
index 000000000000..fc0705981518
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter@2x_dark.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyDeleter_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter_dark.png
new file mode 100644
index 000000000000..65dd90b3a066
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyDeleter_dark.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyGetter.png b/python/edu/resources/icons/com/jetbrains/python/propertyGetter.png
new file mode 100644
index 000000000000..d3069a8d2650
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyGetter.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x.png b/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x.png
new file mode 100644
index 000000000000..bbb02025b6f2
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x_dark.png
new file mode 100644
index 000000000000..69e1fe4d52c6
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyGetter@2x_dark.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertyGetter_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertyGetter_dark.png
new file mode 100644
index 000000000000..cf114e38c516
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertyGetter_dark.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertySetter.png b/python/edu/resources/icons/com/jetbrains/python/propertySetter.png
new file mode 100644
index 000000000000..0154c387fd74
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertySetter.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x.png b/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x.png
new file mode 100644
index 000000000000..f9dbee7c1905
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x_dark.png
new file mode 100644
index 000000000000..072bd5e4e8b7
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertySetter@2x_dark.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/propertySetter_dark.png b/python/edu/resources/icons/com/jetbrains/python/propertySetter_dark.png
new file mode 100644
index 000000000000..75f0423c8103
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/propertySetter_dark.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/pypy.png b/python/edu/resources/icons/com/jetbrains/python/pypy.png
new file mode 100644
index 000000000000..1649f3a6b6b8
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pypy.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/pypy@2x.png b/python/edu/resources/icons/com/jetbrains/python/pypy@2x.png
new file mode 100644
index 000000000000..a55a1a20c38d
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pypy@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/python-logo.png b/python/edu/resources/icons/com/jetbrains/python/python-logo.png
new file mode 100644
index 000000000000..87fff4d6dbfb
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/python-logo.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/python.png b/python/edu/resources/icons/com/jetbrains/python/python.png
new file mode 100644
index 000000000000..02f66b7fabd4
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/python.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/python@2x.png b/python/edu/resources/icons/com/jetbrains/python/python@2x.png
new file mode 100644
index 000000000000..87fff4d6dbfb
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/python@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/pythonClosed.png b/python/edu/resources/icons/com/jetbrains/python/pythonClosed.png
new file mode 100644
index 000000000000..d3d3257cf83e
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pythonClosed.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/pythonClosed@2x.png b/python/edu/resources/icons/com/jetbrains/python/pythonClosed@2x.png
new file mode 100644
index 000000000000..68d99e2eeb8d
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pythonClosed@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/pythonTests.png b/python/edu/resources/icons/com/jetbrains/python/pythonTests.png
new file mode 100644
index 000000000000..5bcf60420dc9
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pythonTests.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/pythonTests@2x.png b/python/edu/resources/icons/com/jetbrains/python/pythonTests@2x.png
new file mode 100644
index 000000000000..2bbbec6755ca
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/pythonTests@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/python_24.png b/python/edu/resources/icons/com/jetbrains/python/python_24.png
new file mode 100644
index 000000000000..fbdfc6ab02c9
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/python_24.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/python_24@2x.png b/python/edu/resources/icons/com/jetbrains/python/python_24@2x.png
new file mode 100644
index 000000000000..5cef65bcb381
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/python_24@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/templateRoot.png b/python/edu/resources/icons/com/jetbrains/python/templateRoot.png
new file mode 100644
index 000000000000..32d4880ec454
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/templateRoot.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/templateRoot@2x.png b/python/edu/resources/icons/com/jetbrains/python/templateRoot@2x.png
new file mode 100644
index 000000000000..bc475d5c0771
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/templateRoot@2x.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/virtualenv.png b/python/edu/resources/icons/com/jetbrains/python/virtualenv.png
new file mode 100644
index 000000000000..2c0f94f19608
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/virtualenv.png differ
diff --git a/python/edu/resources/icons/com/jetbrains/python/virtualenv@2x.png b/python/edu/resources/icons/com/jetbrains/python/virtualenv@2x.png
new file mode 100644
index 000000000000..721a63b883bd
Binary files /dev/null and b/python/edu/resources/icons/com/jetbrains/python/virtualenv@2x.png differ
diff --git a/python/edu/resources/idea/PyCharmEduApplicationInfo.xml b/python/edu/resources/idea/PyCharmEduApplicationInfo.xml
new file mode 100644
index 000000000000..46695ef29ed4
--- /dev/null
+++ b/python/edu/resources/idea/PyCharmEduApplicationInfo.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/python/edu/resources/inspectionDescriptions/BuildoutUnresolvedPartInspection.html b/python/edu/resources/inspectionDescriptions/BuildoutUnresolvedPartInspection.html
new file mode 100644
index 000000000000..b5b36c654afe
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/BuildoutUnresolvedPartInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection highlights unresolved buildout parts.
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyAbstractClassInspection.html b/python/edu/resources/inspectionDescriptions/PyAbstractClassInspection.html
new file mode 100644
index 000000000000..41d83f7dcb9c
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyAbstractClassInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects when there aren't all abstract properties/methods are defined in subclass
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyArgumentEqualDefaultInspection.html b/python/edu/resources/inspectionDescriptions/PyArgumentEqualDefaultInspection.html
new file mode 100644
index 000000000000..16d894ec131c
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyArgumentEqualDefaultInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection highlights situations, where argument passed to function is equal to default parameter value
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyArgumentListInspection.html b/python/edu/resources/inspectionDescriptions/PyArgumentListInspection.html
new file mode 100644
index 000000000000..97d74c0f04ed
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyArgumentListInspection.html
@@ -0,0 +1,8 @@
+
+
+
+This inspection reports discrepancies between declared parameters and actual arguments, as well as
+incorrect arguments (e.g. duplicate named arguments) and incorrect argument order. Decorators are analyzed, too.
+
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyAssignmentToLoopOrWithParameterInspection.html b/python/edu/resources/inspectionDescriptions/PyAssignmentToLoopOrWithParameterInspection.html
new file mode 100644
index 000000000000..4fc3dcd20164
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyAssignmentToLoopOrWithParameterInspection.html
@@ -0,0 +1,21 @@
+
+
+
+ Checks for cases when you rewrite loop variable with inner loop
+
+
+ for i in xrange(5):
+ for i in xrange(20, 25):
+ print("Inner", i)
+ print("Outer", i)
+
+
+ It also warns you if variable declared in with statement is redeclared inside of statement body:
+
+
+ with open("file") as f:
+ f.read()
+ with open("file") as f:
+
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyAttributeOutsideInitInspection.html b/python/edu/resources/inspectionDescriptions/PyAttributeOutsideInitInspection.html
new file mode 100644
index 000000000000..4e0fee15aac0
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyAttributeOutsideInitInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection detects instance attribute definition outside __init__ method
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyAugmentAssignmentInspection.html b/python/edu/resources/inspectionDescriptions/PyAugmentAssignmentInspection.html
new file mode 100644
index 000000000000..f9684908d722
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyAugmentAssignmentInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection highlights assignment that can be replaced with augmented assignment.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyBroadExceptionInspection.html b/python/edu/resources/inspectionDescriptions/PyBroadExceptionInspection.html
new file mode 100644
index 000000000000..67c31a550156
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyBroadExceptionInspection.html
@@ -0,0 +1,8 @@
+
+
+
+This inspection highlights too broad exception clauses such as
+no exception class specified, or specified as 'Exception'.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyByteLiteralInspection.html b/python/edu/resources/inspectionDescriptions/PyByteLiteralInspection.html
new file mode 100644
index 000000000000..e26cb4c5f6ed
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyByteLiteralInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects characters > 255 in byte literals.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyCallByClassInspection.html b/python/edu/resources/inspectionDescriptions/PyCallByClassInspection.html
new file mode 100644
index 000000000000..7bc9775f3135
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyCallByClassInspection.html
@@ -0,0 +1,15 @@
+
+
+
+This inspection checks for calls of a method by class while passing an instance of a different class
+as self parameter:
+
+ foo = Foo()
+ Bar.baz(foo, *more)
+
+
+Sometimes this may be intentional and correct.
+But when unintentional, this leads to subtle bugs.
+
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyCallingNonCallableInspection.html b/python/edu/resources/inspectionDescriptions/PyCallingNonCallableInspection.html
new file mode 100644
index 000000000000..fdc8ed156416
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyCallingNonCallableInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection highlights attempts to call objects which are not callable, like, for example, tuples.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyChainedComparisonsInspection.html b/python/edu/resources/inspectionDescriptions/PyChainedComparisonsInspection.html
new file mode 100644
index 000000000000..657c918d0c8f
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyChainedComparisonsInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection highlights chained comparisons that can be simplified.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyClassHasNoInitInspection.html b/python/edu/resources/inspectionDescriptions/PyClassHasNoInitInspection.html
new file mode 100644
index 000000000000..c31c8f8bf788
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyClassHasNoInitInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection used when a class has no __init__ method, neither its parent classes.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyClassicStyleClassInspection.html b/python/edu/resources/inspectionDescriptions/PyClassicStyleClassInspection.html
new file mode 100644
index 000000000000..3894d7fe87c3
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyClassicStyleClassInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection detects classic style classes usage.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyComparisonWithNoneInspection.html b/python/edu/resources/inspectionDescriptions/PyComparisonWithNoneInspection.html
new file mode 100644
index 000000000000..37a8c54b1627
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyComparisonWithNoneInspection.html
@@ -0,0 +1,8 @@
+
+
+
+ This inspection highlights comparisons with None. That type of comparisons
+ should always be done with 'is' or 'is not', never the equality operators.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyCompatibilityInspection.html b/python/edu/resources/inspectionDescriptions/PyCompatibilityInspection.html
new file mode 100644
index 000000000000..7bb11b11976d
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyCompatibilityInspection.html
@@ -0,0 +1,8 @@
+
+
+
+Enable this inspection if you need your code to be compatible with a range of Python versions (for example, if you're building a library).
+The range of Python versions with which the code needs to be compatible can be specified in the inspection settings.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyDecoratorInspection.html b/python/edu/resources/inspectionDescriptions/PyDecoratorInspection.html
new file mode 100644
index 000000000000..1265e99e5579
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyDecoratorInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection reports usages of @classmethod or @staticmethod decorators on functions outside of a class.
+
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyDefaultArgumentInspection.html b/python/edu/resources/inspectionDescriptions/PyDefaultArgumentInspection.html
new file mode 100644
index 000000000000..3dced26af04e
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyDefaultArgumentInspection.html
@@ -0,0 +1,9 @@
+
+
+
+ This inspection detects when a mutable value as list or dictionary is detected in a default value for an argument.
+ Default argument values are evaluated only once at function definition time, which means that modifying the
+ default value of the argument will affect all subsequent calls of the function.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyDeprecatedModulesInspection.html b/python/edu/resources/inspectionDescriptions/PyDeprecatedModulesInspection.html
new file mode 100644
index 000000000000..0d03609e0a00
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyDeprecatedModulesInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection highlight import statements references a module which is deprecated in current Python version.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyDeprecationInspection.html b/python/edu/resources/inspectionDescriptions/PyDeprecationInspection.html
new file mode 100644
index 000000000000..46c89d8ed8d1
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyDeprecationInspection.html
@@ -0,0 +1,8 @@
+
+
+
+ This inspection highlights usages of Python functions, classes or methods which are marked as deprecated (which raise a
+ DeprecationWarning or a PendingDeprecationWarning).
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyDictCreationInspection.html b/python/edu/resources/inspectionDescriptions/PyDictCreationInspection.html
new file mode 100644
index 000000000000..af988be8ce9a
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyDictCreationInspection.html
@@ -0,0 +1,6 @@
+
+
+This inspection detects situations when dictionary creation
+ could be rewritten with dictionary literal.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyDictDuplicateKeysInspection.html b/python/edu/resources/inspectionDescriptions/PyDictDuplicateKeysInspection.html
new file mode 100644
index 000000000000..8f828987ba89
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyDictDuplicateKeysInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection highlights using the same value as dictionary key twice.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyDocstringInspection.html b/python/edu/resources/inspectionDescriptions/PyDocstringInspection.html
new file mode 100644
index 000000000000..f9f48e5e7204
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyDocstringInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects mismatched parameters in docstring, lack of docstring and an empty docstring.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyDocstringTypesInspection.html b/python/edu/resources/inspectionDescriptions/PyDocstringTypesInspection.html
new file mode 100644
index 000000000000..18f462f3a161
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyDocstringTypesInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection highlights types in docstring which don't match dynamically inferred types.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyExceptClausesOrderInspection.html b/python/edu/resources/inspectionDescriptions/PyExceptClausesOrderInspection.html
new file mode 100644
index 000000000000..d6ade17849ec
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyExceptClausesOrderInspection.html
@@ -0,0 +1,9 @@
+
+
+
+ This inspection highlights situations when except clauses are not in the correct order
+ (from the more specific to the more generic) or one exception class is caught twice.
+ If you don't fix the order, some exceptions may not be catched by the most specific handler.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyExceptionInheritInspection.html b/python/edu/resources/inspectionDescriptions/PyExceptionInheritInspection.html
new file mode 100644
index 000000000000..71ba2f796ad0
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyExceptionInheritInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects when a custom exception class is raised but doesn't inherit from the builtin "Exception" class.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyFromFutureImportInspection.html b/python/edu/resources/inspectionDescriptions/PyFromFutureImportInspection.html
new file mode 100644
index 000000000000..1161ea2b1035
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyFromFutureImportInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects 'from __future__ import' statements which are used not in the beginning of a file.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyGlobalUndefinedInspection.html b/python/edu/resources/inspectionDescriptions/PyGlobalUndefinedInspection.html
new file mode 100644
index 000000000000..f493865fdbd7
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyGlobalUndefinedInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection is used when a variable is defined through the "global" statement but the variable is not defined in the module scope.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyInconsistentIndentationInspection.html b/python/edu/resources/inspectionDescriptions/PyInconsistentIndentationInspection.html
new file mode 100644
index 000000000000..9fefe1fa6f88
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyInconsistentIndentationInspection.html
@@ -0,0 +1,7 @@
+
+
+This inspection reports inconsistent indentation in Python source files (for example, use of a mixture
+ of tabs and spaces).
+
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyInitNewSignatureInspection.html b/python/edu/resources/inspectionDescriptions/PyInitNewSignatureInspection.html
new file mode 100644
index 000000000000..3c44c678c864
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyInitNewSignatureInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection checks mutual compatibility of __new__ and __init__ signatures.
+
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyInterpreterInspection.html b/python/edu/resources/inspectionDescriptions/PyInterpreterInspection.html
new file mode 100644
index 000000000000..3d33dd83160b
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyInterpreterInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection notifies you if the current project has no Python interpreter configured or an invalid Python interpreter.
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyListCreationInspection.html b/python/edu/resources/inspectionDescriptions/PyListCreationInspection.html
new file mode 100644
index 000000000000..47dfd11bdbc1
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyListCreationInspection.html
@@ -0,0 +1,8 @@
+
+
+
+ This inspection detects situations when list creation
+ could be rewritten with list literal.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyMandatoryEncodingInspection.html b/python/edu/resources/inspectionDescriptions/PyMandatoryEncodingInspection.html
new file mode 100644
index 000000000000..8f9c1c87332c
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyMandatoryEncodingInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects lack of encoding magic comment for file.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyMethodFirstArgAssignmentInspection.html b/python/edu/resources/inspectionDescriptions/PyMethodFirstArgAssignmentInspection.html
new file mode 100644
index 000000000000..37914bb36ac9
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyMethodFirstArgAssignmentInspection.html
@@ -0,0 +1,6 @@
+
+
+This inspection detects cases when first parameter, such as 'self' or 'cls', is reassigned in a method.
+In most cases imaginable, there's no point in such reassignment, and it indicates an error.
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyMethodMayBeStaticInspection.html b/python/edu/resources/inspectionDescriptions/PyMethodMayBeStaticInspection.html
new file mode 100644
index 000000000000..b6c42bf6bfb6
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyMethodMayBeStaticInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects any methods which may safely be made static.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyMethodOverridingInspection.html b/python/edu/resources/inspectionDescriptions/PyMethodOverridingInspection.html
new file mode 100644
index 000000000000..95b3a9fdaac8
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyMethodOverridingInspection.html
@@ -0,0 +1,6 @@
+
+
+ This inspection detects inconsistencies in overriding method signatures.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyMethodParametersInspection.html b/python/edu/resources/inspectionDescriptions/PyMethodParametersInspection.html
new file mode 100644
index 000000000000..378ed277a5a9
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyMethodParametersInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection looks for methods that lack a first parameter (which is usually named self).
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyMissingConstructorInspection.html b/python/edu/resources/inspectionDescriptions/PyMissingConstructorInspection.html
new file mode 100644
index 000000000000..281213efbff0
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyMissingConstructorInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection warns if call to super constructor in class is missed
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyNestedDecoratorsInspection.html b/python/edu/resources/inspectionDescriptions/PyNestedDecoratorsInspection.html
new file mode 100644
index 000000000000..f42239f79e6e
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyNestedDecoratorsInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection looks for certain decorators that don't nest well.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyNonAsciiCharInspection.html b/python/edu/resources/inspectionDescriptions/PyNonAsciiCharInspection.html
new file mode 100644
index 000000000000..c3f32441a4ac
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyNonAsciiCharInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects file contains non-ASCII characters and doesn't have an encoding declaration at the top.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyNoneFunctionAssignmentInspection.html b/python/edu/resources/inspectionDescriptions/PyNoneFunctionAssignmentInspection.html
new file mode 100644
index 000000000000..e06c37f23b0f
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyNoneFunctionAssignmentInspection.html
@@ -0,0 +1,6 @@
+
+
+This inspection is similar to pylint inspection E1111. It highlights situations when an assignment is done on a function call but the inferred function doesn't return anything.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyOldStyleClassesInspection.html b/python/edu/resources/inspectionDescriptions/PyOldStyleClassesInspection.html
new file mode 100644
index 000000000000..49a70216c631
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyOldStyleClassesInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection highlights occurrences of new-style class features in old-style classes.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyPackageRequirementsInspection.html b/python/edu/resources/inspectionDescriptions/PyPackageRequirementsInspection.html
new file mode 100644
index 000000000000..ad916132fc56
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyPackageRequirementsInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection warns about imported or required, but not installed packages.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyPep8Inspection.html b/python/edu/resources/inspectionDescriptions/PyPep8Inspection.html
new file mode 100644
index 000000000000..3fa74ec62d48
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyPep8Inspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection runs the pep8.py tool to check for violations of the PEP 8 coding style guide.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyPep8NamingInspection.html b/python/edu/resources/inspectionDescriptions/PyPep8NamingInspection.html
new file mode 100644
index 000000000000..1668c3fbb377
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyPep8NamingInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection checks the PEP8 naming conventions.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyPropertyAccessInspection.html b/python/edu/resources/inspectionDescriptions/PyPropertyAccessInspection.html
new file mode 100644
index 000000000000..437a05918de1
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyPropertyAccessInspection.html
@@ -0,0 +1,8 @@
+
+
+
+ This inspection checks that properties are accessed correctly:
+ read-only not set, write-only not read, non-deletable not deleted.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyPropertyDefinitionInspection.html b/python/edu/resources/inspectionDescriptions/PyPropertyDefinitionInspection.html
new file mode 100644
index 000000000000..38b322dd58fe
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyPropertyDefinitionInspection.html
@@ -0,0 +1,8 @@
+
+
+
+ This inspection checks that arguments to property() and functions annotated with
+ @property and friends look reasonably.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyProtectedMemberInspection.html b/python/edu/resources/inspectionDescriptions/PyProtectedMemberInspection.html
new file mode 100644
index 000000000000..d48badd5e7fe
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyProtectedMemberInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection warns if a protected member is access outside the class or a descendant of the class where it's defined.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyRaisingNewStyleClassInspection.html b/python/edu/resources/inspectionDescriptions/PyRaisingNewStyleClassInspection.html
new file mode 100644
index 000000000000..e598afdcce23
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyRaisingNewStyleClassInspection.html
@@ -0,0 +1,9 @@
+
+
+
+ This inspection detects attempts to raise a new-style class as an exception in projects with
+ language level less than 2.5. Raising new-style classes is only supported in Python 2.5
+ or later.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyRedeclarationInspection.html b/python/edu/resources/inspectionDescriptions/PyRedeclarationInspection.html
new file mode 100644
index 000000000000..1902a8f1a5c7
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyRedeclarationInspection.html
@@ -0,0 +1,9 @@
+
+
+This inspection detects unconditional redeclarations of names without being used in between, like this:
+
def x(): pass
+x = 2
+
+It applies to function and class declarations, and top-level assignments.
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyRedundantParenthesesInspection.html b/python/edu/resources/inspectionDescriptions/PyRedundantParenthesesInspection.html
new file mode 100644
index 000000000000..329591d4e425
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyRedundantParenthesesInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection highlights redundant parentheses in statements.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyReturnFromInitInspection.html b/python/edu/resources/inspectionDescriptions/PyReturnFromInitInspection.html
new file mode 100644
index 000000000000..7820f74cbede
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyReturnFromInitInspection.html
@@ -0,0 +1,6 @@
+
+
+This inspection reports occurrences of return statements with a return value inside
+ __init__ methods of classes. A constructor should not return any value.
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PySetFunctionToLiteralInspection.html b/python/edu/resources/inspectionDescriptions/PySetFunctionToLiteralInspection.html
new file mode 100644
index 000000000000..a54baa15f59f
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PySetFunctionToLiteralInspection.html
@@ -0,0 +1,8 @@
+
+
+
+ This inspection detects call for function "set" which can be replaced with
+ set literal.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyShadowingBuiltinsInspection.html b/python/edu/resources/inspectionDescriptions/PyShadowingBuiltinsInspection.html
new file mode 100644
index 000000000000..f25c27847c4f
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyShadowingBuiltinsInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection detects shadowing built-in names, such as 'len' or 'list'.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyShadowingNamesInspection.html b/python/edu/resources/inspectionDescriptions/PyShadowingNamesInspection.html
new file mode 100644
index 000000000000..dabfaf0b94a1
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyShadowingNamesInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection detects shadowing names defined in outer scopes.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PySimplifyBooleanCheckInspection.html b/python/edu/resources/inspectionDescriptions/PySimplifyBooleanCheckInspection.html
new file mode 100644
index 000000000000..dc5059e90a35
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PySimplifyBooleanCheckInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects equality comparison with a boolean literal.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PySingleQuotedDocstringInspection.html b/python/edu/resources/inspectionDescriptions/PySingleQuotedDocstringInspection.html
new file mode 100644
index 000000000000..e1674d5aa517
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PySingleQuotedDocstringInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection highlights docstrings not using triple double-quoted string format.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyStatementEffectInspection.html b/python/edu/resources/inspectionDescriptions/PyStatementEffectInspection.html
new file mode 100644
index 000000000000..99eee87de619
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyStatementEffectInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects statements without any effect.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyStringExceptionInspection.html b/python/edu/resources/inspectionDescriptions/PyStringExceptionInspection.html
new file mode 100644
index 000000000000..c2584f6bd36c
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyStringExceptionInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects when a string exception is raised.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyStringFormatInspection.html b/python/edu/resources/inspectionDescriptions/PyStringFormatInspection.html
new file mode 100644
index 000000000000..2146cacc428f
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyStringFormatInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects errors in string formatting operations.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PySuperArgumentsInspection.html b/python/edu/resources/inspectionDescriptions/PySuperArgumentsInspection.html
new file mode 100644
index 000000000000..7229a01cfc75
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PySuperArgumentsInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection check that in any call to super(A, B), B either is an instance of A or a subclass of A.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyTrailingSemicolonInspection.html b/python/edu/resources/inspectionDescriptions/PyTrailingSemicolonInspection.html
new file mode 100644
index 000000000000..1d4b70b3dc13
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyTrailingSemicolonInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection detects trailing semicolons in statements.
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyTupleAssignmentBalanceInspection.html b/python/edu/resources/inspectionDescriptions/PyTupleAssignmentBalanceInspection.html
new file mode 100644
index 000000000000..6aa175b0927f
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyTupleAssignmentBalanceInspection.html
@@ -0,0 +1,6 @@
+
+
+
+ This inspection check that the number of expressions on right-hand side and targets on left-hand side are the same.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyTupleItemAssignmentInspection.html b/python/edu/resources/inspectionDescriptions/PyTupleItemAssignmentInspection.html
new file mode 100644
index 000000000000..49a437b3561f
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyTupleItemAssignmentInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects assignments to tuple item.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyTypeCheckerInspection.html b/python/edu/resources/inspectionDescriptions/PyTypeCheckerInspection.html
new file mode 100644
index 000000000000..f2fc714eee0c
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyTypeCheckerInspection.html
@@ -0,0 +1,8 @@
+
+
+This inspection detects type errors in function call expressions.
+Due to dynamic dispatch and duck typing, this is possible in a limited but
+useful number of cases. Types of function parameters can be specified in
+docstrings or in Python 3 function annotations.
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyUnboundLocalVariableInspection.html b/python/edu/resources/inspectionDescriptions/PyUnboundLocalVariableInspection.html
new file mode 100644
index 000000000000..c65de68ae122
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyUnboundLocalVariableInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection warns about local variables referenced before assignment.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyUnnecessaryBackslashInspection.html b/python/edu/resources/inspectionDescriptions/PyUnnecessaryBackslashInspection.html
new file mode 100644
index 000000000000..75d0bd3ba6d5
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyUnnecessaryBackslashInspection.html
@@ -0,0 +1,7 @@
+
+
+
+This inspection highlights backslashes in places where line continuation is implicit (inside (), [], {}).
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyUnreachableCodeInspection.html b/python/edu/resources/inspectionDescriptions/PyUnreachableCodeInspection.html
new file mode 100644
index 000000000000..ed689c3de81b
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyUnreachableCodeInspection.html
@@ -0,0 +1,3 @@
+
+This inspection detects code which can not be normally reached.
+
diff --git a/python/edu/resources/inspectionDescriptions/PyUnresolvedReferencesInspection.html b/python/edu/resources/inspectionDescriptions/PyUnresolvedReferencesInspection.html
new file mode 100644
index 000000000000..8841b4687e61
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyUnresolvedReferencesInspection.html
@@ -0,0 +1,7 @@
+
+
+This inspection detects names that should resolve but don't.
+Due to dynamic dispatch and duck typing, this is possible in a limited but useful
+number of cases. Top-level and class-level items are supported better than instance items.
+
+
diff --git a/python/edu/resources/inspectionDescriptions/PyUnsupportedFeaturesInspection.html b/python/edu/resources/inspectionDescriptions/PyUnsupportedFeaturesInspection.html
new file mode 100644
index 000000000000..b0c92cf6725b
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyUnsupportedFeaturesInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects usage of language features which not supported by current Python version
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/inspectionDescriptions/PyUnusedLocalInspection.html b/python/edu/resources/inspectionDescriptions/PyUnusedLocalInspection.html
new file mode 100644
index 000000000000..95ce583e518d
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/PyUnusedLocalInspection.html
@@ -0,0 +1,3 @@
+
+ This inspection highlights local variables,parameters or local functions unused in scope.
+
diff --git a/python/edu/resources/inspectionDescriptions/RestRoleInspection.html b/python/edu/resources/inspectionDescriptions/RestRoleInspection.html
new file mode 100644
index 000000000000..75809b6562be
--- /dev/null
+++ b/python/edu/resources/inspectionDescriptions/RestRoleInspection.html
@@ -0,0 +1,7 @@
+
+
+
+ This inspection detects undefined roles.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/after.py.template b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/after.py.template
new file mode 100644
index 000000000000..ea988e4ae394
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/after.py.template
@@ -0,0 +1 @@
+print("{0: 5.3F}".format(12))
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/before.py.template b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/before.py.template
new file mode 100644
index 000000000000..fdf53299f13f
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/before.py.template
@@ -0,0 +1 @@
+print("% 5.3F" % 12)
diff --git a/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/description.html b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/description.html
new file mode 100644
index 000000000000..64adb58c79e3
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ConvertFormatOperatorToMethodIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention replaces a string format operator with the equivalent 'format' method call.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/after.py.template b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/after.py.template
new file mode 100644
index 000000000000..4a19285fe1f5
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/after.py.template
@@ -0,0 +1,2 @@
+def foo(foo):
+ doSomething(foo)
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/before.py.template b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/before.py.template
new file mode 100644
index 000000000000..ca5b415454d2
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/before.py.template
@@ -0,0 +1,2 @@
+def foo(**kwargs):
+ doSomething(kwargs['foo'])
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/description.html b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/description.html
new file mode 100644
index 000000000000..10db640519f0
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ConvertVariadicParamIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention replaces variadic parameter(s) with usual.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/after.py.template b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/after.py.template
new file mode 100644
index 000000000000..3158f1b50510
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/after.py.template
@@ -0,0 +1,2 @@
+import sys
+name = sys.argv[0]
diff --git a/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/before.py.template b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/before.py.template
new file mode 100644
index 000000000000..8ccd26c2c6ae
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/before.py.template
@@ -0,0 +1,2 @@
+from sys import argv
+name = argv[0]
diff --git a/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/description.html b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/description.html
new file mode 100644
index 000000000000..63818e399ca3
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ImportFromToImportIntention/description.html
@@ -0,0 +1,8 @@
+
+
+
+This intention transforms from module_name import ... into import module_name
+and qualifies any names imported from that module by module name.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/after.py.template b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/after.py.template
new file mode 100644
index 000000000000..8ccd26c2c6ae
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/after.py.template
@@ -0,0 +1,2 @@
+from sys import argv
+name = argv[0]
diff --git a/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/before.py.template b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/before.py.template
new file mode 100644
index 000000000000..3158f1b50510
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/before.py.template
@@ -0,0 +1,2 @@
+import sys
+name = sys.argv[0]
diff --git a/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/description.html b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/description.html
new file mode 100644
index 000000000000..880f1e8deea2
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ImportToImportFromIntention/description.html
@@ -0,0 +1,8 @@
+
+
+
+This intention replaces import foo with from foo import ...
+and drop qualifiers at references to names from foo.
+
+
+
diff --git a/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/after.py.template b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/after.py.template
new file mode 100644
index 000000000000..3331304b1da8
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/after.py.template
@@ -0,0 +1,2 @@
+from urllib import url2pathname as u2p
+name = u2p("/")
diff --git a/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/before.py.template b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/before.py.template
new file mode 100644
index 000000000000..6db525770030
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/before.py.template
@@ -0,0 +1,2 @@
+from urllib import url2pathname
+name = url2pathname("/")
diff --git a/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/description.html b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/description.html
new file mode 100644
index 000000000000..de5fc8167a1c
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ImportToggleAliasIntention/description.html
@@ -0,0 +1,8 @@
+
+
+
+This intention allows to add or remove an alias from an import element, renaming references accordingly.
+Works both for import ... as ... and from ... import ... as statements.
+
+
+
diff --git a/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/after.py.template
new file mode 100644
index 000000000000..4429ea5a8361
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/after.py.template
@@ -0,0 +1,7 @@
+def func2(x, y):
+ return (x+y)/y
+
+def func(seq):
+ ...
+ newlist = reduce(func2, seq)
+ ...
diff --git a/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/before.py.template
new file mode 100644
index 000000000000..fd61cfd76461
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/before.py.template
@@ -0,0 +1,4 @@
+def func(seq):
+ ...
+ newlist = reduce(lambda x, y: (x+y)/y, seq)
+ ...
diff --git a/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/description.html b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/description.html
new file mode 100644
index 000000000000..2e58675974a3
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertLambdaToFunctionIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention converts lambda function to function definition statement.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/after.py.template
new file mode 100644
index 000000000000..1c8040301451
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/after.py.template
@@ -0,0 +1,13 @@
+class MyClass(object):
+ """
+ My class to show intention.
+ """
+ def __init__(self):
+ self._x = None
+
+ @property
+ def x(self):
+ return self._x
+
+
+x = MyClass().x
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/before.py.template
new file mode 100644
index 000000000000..7940289de5cb
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/before.py.template
@@ -0,0 +1,12 @@
+class MyClass(object):
+ """
+ My class to show intention.
+ """
+ def __init__(self):
+ self._x = None
+
+ def x(self):
+ return self._x
+
+
+x = MyClass().x()
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/description.html b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/description.html
new file mode 100644
index 000000000000..82ae5ebfe544
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertMethodToPropertyIntention/description.html
@@ -0,0 +1,5 @@
+
+
+This intention converts method to property.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/after.py.template
new file mode 100644
index 000000000000..f393b5ef1e73
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/after.py.template
@@ -0,0 +1,14 @@
+class MyClass(object):
+ """
+ My class to show intention.
+ """
+
+ def __init__(self):
+ self.a = 1
+
+def my_static_method():
+ import code
+ import time
+
+ time.sleep(100)
+ print code
diff --git a/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/before.py.template
new file mode 100644
index 000000000000..a2e4b7985e54
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/before.py.template
@@ -0,0 +1,15 @@
+class MyClass(object):
+ """
+ My class to show intention.
+ """
+
+ def __init__(self):
+ self.a = 1
+
+ @staticmethod
+ def my_static_method():
+ import code
+ import time
+
+ time.sleep(100)
+ print code
diff --git a/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/description.html b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/description.html
new file mode 100644
index 000000000000..ea7e64f10d6b
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertStaticMethodToFunctionIntention/description.html
@@ -0,0 +1,5 @@
+
+
+This intention converts static method to function.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/after.py.template
new file mode 100644
index 000000000000..af439511d107
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/after.py.template
@@ -0,0 +1,3 @@
+a = ("This line is ok," "\n"
+ "but \"this\" includes far too much" "\n"
+ "whitespace at the start")
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/before.py.template
new file mode 100644
index 000000000000..b556824b48f0
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/before.py.template
@@ -0,0 +1,3 @@
+a = """This line is ok,
+ but "this" includes far too much
+ whitespace at the start"""
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/description.html b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/description.html
new file mode 100644
index 000000000000..a75a51a90fbf
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyConvertTripleQuotedStringIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention converts triple-quoted string to single-quoted.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyDemorganIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyDemorganIntention/after.py.template
new file mode 100644
index 000000000000..de9e125e7530
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyDemorganIntention/after.py.template
@@ -0,0 +1,2 @@
+if not (not a and not b):
+ pass
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyDemorganIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyDemorganIntention/before.py.template
new file mode 100644
index 000000000000..1a0e3f300de4
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyDemorganIntention/before.py.template
@@ -0,0 +1,2 @@
+if a or b:
+ pass
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyDemorganIntention/description.html b/python/edu/resources/intentionDescriptions/PyDemorganIntention/description.html
new file mode 100644
index 000000000000..4dfbca1bdc31
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyDemorganIntention/description.html
@@ -0,0 +1,14 @@
+
+
+
+This intention replaces either
+
+a or b with not(not a and not b) or
+a and b with not(not a or not b)
+
+
+
+inside boolean expression.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/after.py.template
new file mode 100644
index 000000000000..684a858f604c
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/after.py.template
@@ -0,0 +1 @@
+{'a': 3, 'b': 5}
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/before.py.template
new file mode 100644
index 000000000000..2bfbfb98c348
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/before.py.template
@@ -0,0 +1 @@
+dict(a=3, b=5)
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/description.html b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/description.html
new file mode 100644
index 000000000000..ee5f619cd7f4
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyDictConstructorToLiteralFormIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention converts translation from dict constructor to dict literal form.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/after.py.template
new file mode 100644
index 000000000000..2bfbfb98c348
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/after.py.template
@@ -0,0 +1 @@
+dict(a=3, b=5)
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/before.py.template
new file mode 100644
index 000000000000..684a858f604c
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/before.py.template
@@ -0,0 +1 @@
+{'a': 3, 'b': 5}
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/description.html b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/description.html
new file mode 100644
index 000000000000..9af5246228d3
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyDictLiteralFormToConstructorIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention converts translation from dict literal form to dict constructor.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/after.py.template
new file mode 100644
index 000000000000..37b79e3f1d30
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/after.py.template
@@ -0,0 +1,2 @@
+if a > b:
+ return a
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/before.py.template
new file mode 100644
index 000000000000..1814460d6f27
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/before.py.template
@@ -0,0 +1,2 @@
+if b < a:
+ return a
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/description.html b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/description.html
new file mode 100644
index 000000000000..c6b67f5acfe2
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyFlipComparisonIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention swaps the operands of a comparison expression.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/after.py.template
new file mode 100644
index 000000000000..bf0cffa3e944
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/after.py.template
@@ -0,0 +1,7 @@
+def foo(a, b):
+ """
+ :param a:
+ :param b:
+ :return:
+ """
+ pass
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/before.py.template
new file mode 100644
index 000000000000..7898e8a5a596
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/before.py.template
@@ -0,0 +1,2 @@
+def foo(a,b):
+ pass
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/description.html b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/description.html
new file mode 100644
index 000000000000..87e9bb7c4b80
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyGenerateDocstringIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention generates documentation string stub.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyJoinIfIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/after.py.template
new file mode 100644
index 000000000000..e2fcd5989953
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/after.py.template
@@ -0,0 +1,2 @@
+if a and b:
+ return
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyJoinIfIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/before.py.template
new file mode 100644
index 000000000000..c680e979fc94
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/before.py.template
@@ -0,0 +1,3 @@
+if a:
+ if b:
+ return
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyJoinIfIntention/description.html b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/description.html
new file mode 100644
index 000000000000..794e24c6b87c
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyJoinIfIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention converts two nested if statements into one if statement containing conjuction operation in it.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/after.py.template
new file mode 100644
index 000000000000..89ed0f8d31a2
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/after.py.template
@@ -0,0 +1,2 @@
+if a != b:
+ return a
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/before.py.template
new file mode 100644
index 000000000000..7283065cd014
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/before.py.template
@@ -0,0 +1,2 @@
+if not a == b:
+ return a
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/description.html b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/description.html
new file mode 100644
index 000000000000..acb11fef7ac6
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyNegateComparisonIntention/description.html
@@ -0,0 +1,8 @@
+
+
+
+ This intention converts boolean comparison expression not(a negop b) into a op b.
+ Where op and negop are mutually inverse comparison operators, like == and !=.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/after.py.template
new file mode 100644
index 000000000000..cbf185626543
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/after.py.template
@@ -0,0 +1 @@
+"\"Hello\" - said man."
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/before.py.template
new file mode 100644
index 000000000000..904c28a98492
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/before.py.template
@@ -0,0 +1 @@
+'"Hello" - said man.'
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/description.html b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/description.html
new file mode 100644
index 000000000000..cfd35d664f82
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyQuotedStringIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention allows conversion between single-quoted and double-quoted strings.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PySplitIfIntention/after.py.template b/python/edu/resources/intentionDescriptions/PySplitIfIntention/after.py.template
new file mode 100644
index 000000000000..c0f7384ea7c6
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PySplitIfIntention/after.py.template
@@ -0,0 +1,3 @@
+if a:
+ if b:
+ return
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PySplitIfIntention/before.py.template b/python/edu/resources/intentionDescriptions/PySplitIfIntention/before.py.template
new file mode 100644
index 000000000000..9e841f5ee358
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PySplitIfIntention/before.py.template
@@ -0,0 +1,2 @@
+if a and b:
+ return
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PySplitIfIntention/description.html b/python/edu/resources/intentionDescriptions/PySplitIfIntention/description.html
new file mode 100644
index 000000000000..643c3c79571f
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PySplitIfIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention converts if statement containing conjuction operation into two nested if statements with simplified conditions.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/after.py.template
new file mode 100644
index 000000000000..56cd89aef1c8
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/after.py.template
@@ -0,0 +1 @@
+"a%sc" % (b)
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/before.py.template
new file mode 100644
index 000000000000..96db9539c962
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/before.py.template
@@ -0,0 +1 @@
+"a" + b + "c"
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/description.html b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/description.html
new file mode 100644
index 000000000000..908daa21be31
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyStringConcatenationToFormatIntention/description.html
@@ -0,0 +1,8 @@
+
+
+
+ This intention replaces a string concatenation with the equivalent expression with string formatting operator usage
+ or with str.format() method call (for Python versions >= 2.7).
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/after.py.template
new file mode 100644
index 000000000000..24e157d011dc
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/after.py.template
@@ -0,0 +1,4 @@
+if cond:
+ x = a
+else:
+ x = b
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/before.py.template
new file mode 100644
index 000000000000..601e958f079d
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/before.py.template
@@ -0,0 +1 @@
+x = a if cond else b
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/description.html b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/description.html
new file mode 100644
index 000000000000..c0552efb32e6
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyTransformConditionalExpressionIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention transforms conditional expression into if/else statement.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyYieldFromIntention/after.py.template b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/after.py.template
new file mode 100644
index 000000000000..773e592b09e0
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/after.py.template
@@ -0,0 +1 @@
+yield from b
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyYieldFromIntention/before.py.template b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/before.py.template
new file mode 100644
index 000000000000..aa447f1e3b13
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/before.py.template
@@ -0,0 +1,2 @@
+for a in b:
+ yield a
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/PyYieldFromIntention/description.html b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/description.html
new file mode 100644
index 000000000000..667a76164b3f
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/PyYieldFromIntention/description.html
@@ -0,0 +1,5 @@
+
+
+ This intention transforms explicit iteration with 'yield' into 'yield from'.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/after.py.template b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/after.py.template
new file mode 100644
index 000000000000..036345d596d1
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/after.py.template
@@ -0,0 +1,3 @@
+a = []
+for x in xrange(5):
+ a.add(x)
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/before.py.template b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/before.py.template
new file mode 100644
index 000000000000..eef9ef7bb5dd
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/before.py.template
@@ -0,0 +1 @@
+a = [x for x in xrange(5)]
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/description.html b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/description.html
new file mode 100644
index 000000000000..54da12726567
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/ReplaceListComprehensionWithForIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention replaces a list comprehension with for loop.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/after.html.template b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/after.html.template
new file mode 100644
index 000000000000..489da3518483
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/after.html.template
@@ -0,0 +1,5 @@
+def foo(var):
+ """
+ @type var: string
+ """
+ var.
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/before.html.template b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/before.html.template
new file mode 100644
index 000000000000..fcdfce0ebee8
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/before.html.template
@@ -0,0 +1,2 @@
+def foo(var):
+ var.
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/description.html b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/description.html
new file mode 100644
index 000000000000..9ff83f3b28bc
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInDocstringIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention used to specify type for expression in docstring.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/after.html.template b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/after.html.template
new file mode 100644
index 000000000000..5f5265fc0bd6
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/after.html.template
@@ -0,0 +1,2 @@
+def foo(var: object):
+ var.
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/before.html.template b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/before.html.template
new file mode 100644
index 000000000000..fcdfce0ebee8
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/before.html.template
@@ -0,0 +1,2 @@
+def foo(var):
+ var.
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/description.html b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/description.html
new file mode 100644
index 000000000000..dce9825a7ef6
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/SpecifyTypeInPy3AnnotationsIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention used to specify type for expression in Python 3 using type annotations.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/TypeAssertionIntention/after.html.template b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/after.html.template
new file mode 100644
index 000000000000..fd8ffc7fb452
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/after.html.template
@@ -0,0 +1,3 @@
+var = unknown()
+assert isinstance(var, object)
+var.
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/TypeAssertionIntention/before.html.template b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/before.html.template
new file mode 100644
index 000000000000..3ce25401f353
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/before.html.template
@@ -0,0 +1,2 @@
+var = unknown()
+var.
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/TypeAssertionIntention/description.html b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/description.html
new file mode 100644
index 000000000000..be57cd3b6847
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/TypeAssertionIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention used to specify type for expression by assertion.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/WrapTransTagIntention/after.html.template b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/after.html.template
new file mode 100644
index 000000000000..d26fc1258f3e
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/after.html.template
@@ -0,0 +1 @@
+{% blocktrans %}This will have {{ myvar }} inside.{% endblocktrans %}
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/WrapTransTagIntention/before.html.template b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/before.html.template
new file mode 100644
index 000000000000..e7f818a2378b
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/before.html.template
@@ -0,0 +1 @@
+This will have {{ myvar }} inside.
\ No newline at end of file
diff --git a/python/edu/resources/intentionDescriptions/WrapTransTagIntention/description.html b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/description.html
new file mode 100644
index 000000000000..6646903b6258
--- /dev/null
+++ b/python/edu/resources/intentionDescriptions/WrapTransTagIntention/description.html
@@ -0,0 +1,7 @@
+
+
+
+ This intention wraps selected template part with {% trans %} tag.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/liveTemplates/Python.xml b/python/edu/resources/liveTemplates/Python.xml
new file mode 100644
index 000000000000..47928f82d8aa
--- /dev/null
+++ b/python/edu/resources/liveTemplates/Python.xml
@@ -0,0 +1,329 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/python/edu/resources/pycharm_core_about.png b/python/edu/resources/pycharm_core_about.png
new file mode 100644
index 000000000000..6e92309f8b9b
Binary files /dev/null and b/python/edu/resources/pycharm_core_about.png differ
diff --git a/python/edu/resources/pycharm_core_about@2x.png b/python/edu/resources/pycharm_core_about@2x.png
new file mode 100644
index 000000000000..a831870c6f19
Binary files /dev/null and b/python/edu/resources/pycharm_core_about@2x.png differ
diff --git a/python/edu/resources/pycharm_core_logo.png b/python/edu/resources/pycharm_core_logo.png
new file mode 100644
index 000000000000..3daabbaa1470
Binary files /dev/null and b/python/edu/resources/pycharm_core_logo.png differ
diff --git a/python/edu/resources/pycharm_core_logo@2x.png b/python/edu/resources/pycharm_core_logo@2x.png
new file mode 100644
index 000000000000..83bf65b55e3b
Binary files /dev/null and b/python/edu/resources/pycharm_core_logo@2x.png differ
diff --git a/python/edu/resources/tips/AdaptiveWelcome.html b/python/edu/resources/tips/AdaptiveWelcome.html
new file mode 100644
index 000000000000..597ffaf6e402
--- /dev/null
+++ b/python/edu/resources/tips/AdaptiveWelcome.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
Welcome to PyCharm Productivity Guide
+
+ PyCharm keeps track of which of its features you are using and will offer you some tips to let you know
+ about the features you may have missed. These tips will be shown while the startup process is going on.
+ You can always get back to them by selecting Help | Productivity Guide
+ on the menu bar.
+ Version control annotations show the latest changes of each line in one click.
+
+ Just right-click an annotation and use the Show Diff command in the context menu.
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/BreakpointSpeedmenu.html b/python/edu/resources/tips/BreakpointSpeedmenu.html
new file mode 100644
index 000000000000..5a03f23734a0
--- /dev/null
+++ b/python/edu/resources/tips/BreakpointSpeedmenu.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ Right-clicking on a breakpoint (in the left gutter) invokes the context menu where
+ you can quickly enable/disable the breakpoint or adjust its properties.
It is very easy to change the built-in web server port (File | Settings – Debugger – JavaScript),
+and use the "Built-in server port" spinner to set the new value.
+
+
Next, open an HTML page in your browser and see it running on the defined port.
When in the Go to Class,
+ Go to Symbol, or
+ Go to File popup,
+ you can ease the search by filtering the lookup list with the help of the "camel words" prefixes.
+ When an autopopup completion is active,
+ &shortcut:EditorLookupDown; and &shortcut:EditorLookupUp;
+ will close it and move the caret down or up in the editor.
+
The Changes tool window shows all deleted, modified, and unversioned files in a single view.
+Use &shortcut:ActivateChangesToolWindow; keyboard shortcut to show or hide this tool window.
+
From the Changes tool window you can perform all the necessary version control actions: commit changes, manage changelists, put resources under version control, examine differences and more.
The format of a regular expression can be rather complicated.
+To make sure you didn't miss some slash of quotation mark, place the caret
+somewhere in the expression you want to check, and press &shortcut:ShowIntentionActions;.
+
In the pop-up frame type a string that you think should match your regular expression. If the background turns green, you are lucky. If it turns red, then you have to look for a mistake.
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/ClassNameCompletion.html b/python/edu/resources/tips/ClassNameCompletion.html
new file mode 100644
index 000000000000..cdeb6602a9ff
--- /dev/null
+++ b/python/edu/resources/tips/ClassNameCompletion.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ A special variant of the Code Completion feature invoked by pressing &shortcut:CodeCompletion; twice allows you to
+ complete the name of any class
+ no matter if it was imported in the current file or not.
+ If the class is not imported yet, the import statement is generated automatically.
+ The Code Completion feature lets you quickly complete different kinds of statements
+ in the code.
+ For example, start typing a class name and press &shortcut:CodeCompletion;
+ to complete it.
+ When multiple choices are available, they are shown in the lookup list.
When you are finding text in the current file (&shortcut:Find;), you don't need to type the whole search string:
+ Basic Code Completion is available in the search field. Start typing, press &shortcut:CodeCompletion;, and
+ select the desired string from the suggestion list.
+ When using basic code completion (&shortcut:CodeCompletion;),
+ you don't need to type upper-case letters in CamelHump names.
+ It is enough to type the initial letters of the camel names in lower case, and they will be smartly recognized.
+
+
+
This behavior is enabled, if None is selected from the
+Case sensitive completion drop-down list (the
+Code Completion page of the Editor settings).
+
+
diff --git a/python/edu/resources/tips/ColorEditingInCss.html b/python/edu/resources/tips/ColorEditingInCss.html
new file mode 100644
index 000000000000..cf92ed9baa2f
--- /dev/null
+++ b/python/edu/resources/tips/ColorEditingInCss.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
&productName;
+ simplifies your work
+ with colors in CSS files. The color
+ properties have the icons of the corresponding color in the left gutter area of the editor.
+
+
Click color icons to choose the desired color from the color picker.
+ You can comment and uncomment lines of code using &shortcut:CommentByLineComment;.
+
+ &shortcut:CommentByLineComment; comments or uncomments the current line or
+ several selected lines with single line comments ({# in Django templates,
+ or # in Python scripts).
+
+ Pressing &shortcut:CommentByBlockComment; for a selected block of source code
+ in a Django template surrounds the block with {% comment %}
+ and {% endcomment %} tags.
You can use Basic Completion
+ (&shortcut:CodeCompletion;) in HTML, CSS and JavaScript files, for completing attributes,
+ parameters, tags, selectors, etc.
For the embedded local terminal, you can define your favorite shell,
+default tab name, and other settings.
+Choose
+File | Settings (Windows/*nix) or
+PyCharm | Preferences (Mac)
+on the main menu, and then open the page Terminal.
+ You can work in the Python or Django shell without leaving the IDE.
+ Just choose Run Python Console or Run Django Console
+ in the Tools menu.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/ConsolesCodeCompletion.html b/python/edu/resources/tips/ConsolesCodeCompletion.html
new file mode 100644
index 000000000000..8c4cbb33dd3d
--- /dev/null
+++ b/python/edu/resources/tips/ConsolesCodeCompletion.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ Working in the interactive consoles, you don't need to memorise the command line syntax or available functions.
+ Instead, you can use the familiar code completion &shortcut:CodeCompletion;.
+ Moreover, from within the lookup list, you can press &shortcut:QuickJavaDoc;
+ to view the item's documentation.
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/ConsolesHistory.html b/python/edu/resources/tips/ConsolesHistory.html
new file mode 100644
index 000000000000..8fe19a578742
--- /dev/null
+++ b/python/edu/resources/tips/ConsolesHistory.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ If you have already spent some time working in the interactive consoles,
+ you don't need to re-type the previously entered commands to repeat them.
+ Instead, press &shortcut:EditorScrollUp; and
+ &shortcut:EditorScrollDown; to scroll through
+ the history of commands.
+ When using autopopup Code Completion, you can select the first item using &shortcut:EditorChooseLookupItemDot;.
+ The selected name is automatically entered in the editor followed by dot.
Use &shortcut:QuickImplementations;
+ (View | Quick Definition),
+ to quickly review definition or content of the symbol at caret, without the need to open it
+ in a new editor tab.
The Quick Definition Viewer
+ (&shortcut:QuickImplementations;) can be also used for items in lookup lists that appear on code
+ completion and class/file/symbol navigaton commands.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/CtrlW.html b/python/edu/resources/tips/CtrlW.html
new file mode 100644
index 000000000000..34e30540cb80
--- /dev/null
+++ b/python/edu/resources/tips/CtrlW.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
&shortcut:EditorSelectWord; (extend selection) in the editor selects the word at the caret
+ and then selects expanding areas of the source code. For example, it may select a method name,
+ then the expression that calls this method, then the whole statement, then the containing block, etc.
+ You can also select the word at the caret and the expanding areas of the source code by double-clicking the target areas in the editor.
+ To compare two directories, select one or both of them in the Project view and
+ press &shortcut:CompareDirs;.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/DotEtcInLookups.html b/python/edu/resources/tips/DotEtcInLookups.html
new file mode 100644
index 000000000000..149bbaad6aab
--- /dev/null
+++ b/python/edu/resources/tips/DotEtcInLookups.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+ When using Code Completion, you can accept the currently highlighted selection in the popup list
+ with the period character (.), comma (,),
+ semicolon (;), space and other characters.
+
+ The selected name is automatically entered in the editor followed by the entered character.
You can avoid escaping backslashes in your regular expressions. Start typing a regular expression, then press &shortcut:ShowIntentionActions; and choose Edit RegExp.
+The regular expression opens in a separate tab in the editor, where you can type backslashes as is.
+
All changes are synchronized with the original regular expression, and escapes are presented automatically. When ready, just press &shortcut:EditorEscape; to close the regular expression editor.
Enable this framework in the Emmet(Zen Coding) page of the Settings/Preferences dialog:
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/EnterDirectoryInGotoFile.html b/python/edu/resources/tips/EnterDirectoryInGotoFile.html
new file mode 100644
index 000000000000..71704d4906f3
--- /dev/null
+++ b/python/edu/resources/tips/EnterDirectoryInGotoFile.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
You can jump directly to any deeply buried file, if you press &shortcut:GotoFile;, and type just a couple
+of characters of the enclosing directories and file names:
+
+
+
+
Use either a slash or a backslash as a delimiter.
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/Escape.html b/python/edu/resources/tips/Escape.html
new file mode 100644
index 000000000000..949dec64329d
--- /dev/null
+++ b/python/edu/resources/tips/Escape.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
The &shortcut:EditorEscape; key in any tool window moves the focus to the editor.
+
&shortcut:HideActiveWindow; moves the focus to the editor and also hides the current (or last active) tool window.
+
The &shortcut:JumpToLastWindow; key moves the focus from the editor to the last focused tool window.
To easily evaluate the value of any expression while debugging the program, select its text in the editor
+ (you might want to press a &shortcut:EditorSelectWord; a few times to efficiently perform this operation)
+ and then press &shortcut:EvaluateExpression;.
The Extract Variable
+ refactoring helps you simplify complicated statements in your code. For example, in the code fragment below,
+ you can select an expression in the code, and press &shortcut:IntroduceVariable; (Refactor | Extract | Variable).
You can quickly navigate in the currently edited file with &shortcut:FileStructurePopup;
+ (Navigate | File Structure).
+
It shows the list of members of the current class. Select an element you want to navigate to and press the
+ Enter key or the &shortcut:EditSource; key.
+
To easily locate an item in the list, just start typing its name.
It is very easy to toggle between find and replace functionality.
+
When you perform search and replace in a file, pressing &shortcut:Find;
+shows the search pane. Pressing &shortcut:Replace; adds field, where you can type the replace string.
+
+
While in the Find in Path dialog, you can switch to
+replace by pressing &shortcut:ReplaceInPath;. Same way, press &shortcut:FindInPath; to hide the
+Replace with field, and switch to mere search.
+ You can quickly find all places where a particular class, method or variable is used in the whole project
+ by positioning the caret at the symbol's name or at its usage in code and pressing &shortcut:FindUsages;
+ (Find Usages
+ in the popup menu).
To quickly find a menu command or toolbar action, you do not need to look through the menus. Just press
+ &shortcut:GotoAction;
+ (Help | Find Action on the main
+ menu) and start typing the name of the action. Choose the desired action from the suggestion list.
+ To open any class in the editor quickly, press &shortcut:GotoClass;
+ (Navigate | Class)
+ and start typing the name of the class. Choose the class from a drop-down list that appears.
+
+
+
+ You can open any file in your project in a similar way by using &shortcut:GotoFile;
+ (Navigate | File)
To navigate to the declaration of a class, method or variable used somewhere in the code,
+ position the caret at the usage and press &shortcut:GotoDeclaration;. You can also click the mouse
+ on usages with the Ctrl
+ key pressed to jump to declarations.
To quickly find and run an inspection, press
+ &shortcut:RunInspection;
+ and start typing the name of the inspection or its group. Choose the desired inspection from the suggestion list and
+ then specify the desired scope.
+ To open any class or file in the editor at the desired line, press &shortcut:GotoFile;
+ (Navigate | File),
+ start typing the name, and choose the one from the suggestion list.
+ Then type the colon (:) and a line number.
+
+ The selected file will open with the caret at the specified line.
+ To see the inheritance hierarchy for a selected class,
+ press &shortcut:TypeHierarchy;
+ (Navigate | Type Hierarchy).
+ You can also invoke the hierarchy view right from the editor
+ to see the hierarchy for the currently edited class.
You can quickly view the image referenced at caret by using the
+ Quick Definition
+ (&shortcut:QuickImplementations;). The underlying image will be opened in a popup instead of a separate editor tab.
&productName; lets you jump from your check-in comment to an issue in your task tracker.
+
All you have to do is to define issue navigation patterns on the
+ Version Control page of the Settings/Preferences
+ dialog:
+
+
When you commit a changelist, and type the check-in comment, make sure it matches one of your issue navigation patterns.
+ Later, when you browse through the changelists in the repository, such comments turn into hyperlinks:
+
+
Clicking a hyperlink brings you directly to an issue in your task tracker.
+
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/JoinLines.html b/python/edu/resources/tips/JoinLines.html
new file mode 100644
index 000000000000..144035ddb624
--- /dev/null
+++ b/python/edu/resources/tips/JoinLines.html
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ The &shortcut:EditorJoinLines; shortcut joins two lines
+ into one and removes unnecessary spaces to match your code style.
+ While debugging, you might need an interactive console at hand... This is most easy.
+During the debugging session, switch to the Debugger Console,
+and then press the very lowest button in its toolbar.
+
+
The console becomes interactive, and shows a prompt, where you can enter commands, and view output.
To view which line separators style is used in the current file,
+look at the Status Bar:
+
+
+
To change the current line ending style, just click the spinner.
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/LineEndingsFolder.html b/python/edu/resources/tips/LineEndingsFolder.html
new file mode 100644
index 000000000000..a7824801b636
--- /dev/null
+++ b/python/edu/resources/tips/LineEndingsFolder.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
You do not need to open a file in the editor to change its line separator style.
+Use the Project tool window instead: select one or more files,
+or folders, point to File | Line Separators on the main menu,
+and then choose the desired line ending style.
+
For a directory, new line separator applies recursively.
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/LiveTemplates.html b/python/edu/resources/tips/LiveTemplates.html
new file mode 100644
index 000000000000..be1d10b45a42
--- /dev/null
+++ b/python/edu/resources/tips/LiveTemplates.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ Live Templates let you generate many typical code constructs in seconds. For example, type
+ for in a Django template
+
+
+
+ and then press the Tab key to see what happens.
+
+
+
+ Use the Tab key to move between the template fields.
+
See Live Templates page of the Settings / Preferences
+dialog for more details.
If you are going to use Django live templates, make sure that Django is selected
+as the default Python template language in the Settings / Preferences dialog:
+
If you've changed a live template, it becomes blue. If you want to return to the
+original text, right-click such a blue template, and choose
+Restore defaults on the context menu.
+
To see your local history of changes in a file, invoke
+ Local History | Show History
+ from the context menu. You can navigate through different file versions, see the differences and roll back to any previous version.
+
Use the same context menu item to see the history of changes on a directory. You will never lose any code with this feature!
+ The easiest way to run a utility of the manage.py task is to
+ choose Run manage.py Task in the
+ Tools menu, or press &shortcut:Django.RunManageTaskAction;.
+
+ As you type the name of the utility you want to run, the lookup list shrinks
+ to show the matching entries only.
+
+ If you type an asterisk, PyCharm will show the complete list of all the available tasks.
To help you learn the purpose of each item in the main menu, its short description is shown in the status
+ bar at the bottom of the application frame when you position the mouse pointer over this item.
To show separator lines between methods in the editor, open the editor settings
+ and select the Show method separators check box in the
+ Appearance page.
If you don't want to commit some of your changes to the repository, you can set them aside for a while, by moving
+ to a separate changelist, or by putting them to a shelf. Select such file in the Local tab of the Changes tool
+ window, and on the context menu choose Move to another changelist,
+ or Shelve Changes.
+ The Code | Move Statement Up/Down action is useful for reorganizing the code lines
+ in your file, e.g., for bringing a variable declaration closer to the variable usage.
+
+ For example, select a code fragment and press &shortcut:MoveStatementUp; or
+ &shortcut:MoveStatementDown;.
+
+ Before:
+
+
+
+ After moving the lines up:
+
+
+
+ After moving the lines down:
+
+
+
+ When there is no selection, the line at the cursor will be moved.
In &productName;, you can have multiple cursors.
+Having pressed Alt, click the left mouse button
+at the desired position to set additional cursors in the editor.
+
Press &shortcut:EditorEscape; to remove all the additional cursors
+but one that resides at the line at caret.
&productName; can work with several projects in one window.
+To open a project in the same window with the already opened one, choose
+Open directory, then in the Open project
+dialog box, select the option
+Open in current window, and select the check box
+Add to currently opened projects.
Ctrl+Click (on Windows) or Cmd+Click (on MacOS) a tab in the editor to navigate to any part of the file path.
+Select the necessary element in the drop-down, and the corresponding file path opens in an external browser
+(e.g., in the Explorer, if your OS is Windows).
+
+
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/OverrideImplementMethods.html b/python/edu/resources/tips/OverrideImplementMethods.html
new file mode 100644
index 000000000000..f9a4ecb5083c
--- /dev/null
+++ b/python/edu/resources/tips/OverrideImplementMethods.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ You can easily override the methods of the base class by pressing
+ &shortcut:OverrideMethods; (Code | Override Methods).
When choosing a live template from a suggestion list, press
+&shortcut:QuickJavaDoc; to view quick documentation -
+to be sure you make a right choice:
You don't need to invoke quick documentation explicitly
+(&shortcut:QuickJavaDoc;) - if you just move your mouse
+pointer over the desired symbol, the quick documentation pop-up window will show
+automatically.
+
To enable this feature, select the check box Show quick doc on mouse move
+in the editor settings.
+
When you press &shortcut:ShowIntentionActions; to invoke a quick fix or intention action,
+ press the right arrow key to reveal the list of additional options.
+
Depending on the context, you can choose to disable inspection, fix all problems,
+ change inspection profile, etc.
The shortcuts such as &shortcut:QuickJavaDoc;
+ (View | Quick Documentation),
+ &shortcut:ParameterInfo; (View | Parameter Info),
+ &shortcut:GotoDeclaration; (Navigate | Declaration)
+ and others can be used not only in the editor but in the code completion popup list as well.
With a single keystroke, you can apply another code style/coloring scheme or keymap right from the editor.
+ Just press &shortcut:QuickChangeScheme;
+ (View | Quick Switch Scheme),
+ to specify the scheme you want to change.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/RecentChanges.html b/python/edu/resources/tips/RecentChanges.html
new file mode 100644
index 000000000000..83cae820f71a
--- /dev/null
+++ b/python/edu/resources/tips/RecentChanges.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
Use &shortcut:RecentChanges; to quickly review your recent changes to the project.
&shortcut:RecentFiles; (View | Recent Files)
+ brings a popup list of the recently visited files. Choose the desired file and press
+ Enter to open it.
+
+
+
Besides recent files, you can bring up results of the usage searches you have performed
+ recently. To do that, use the same &shortcut:RecentFiles; shortcut with the Find tool window having
+ the focus, and select the desired find usages result from the Recent Find Usages popup.
When searching for a text string in a file, use recent history: with the search pane already open, click
+ the down arrow to show the list of recent entries.
+
If you place the caret at certain symbol and press &shortcut:Refactorings.QuickListPopupAction;,
+you will see the list of refactorings applicable to the current context.
You can easily rename your local variables with automatic correction of all places where they are used.
+
To try it, place the caret at the variable you want to rename, and press &shortcut:RenameElement;
+ (Refactor | Rename).
+ Type the new name in the popup window that appears, or select one of the suggested names,
+ and press
+ Enter.
It is possible to rename CSS selectors directly from HTML. Position the caret at
+ the selector to be renamed and press &shortcut:RenameElement;
+ (Refactor | Rename).
You can quickly find a setting you need in the Settings/Preferences dialog, without browsing through the numerous options.
+Just type some characters that, in your opinion, exist in the option description, and the list of settings will reduce to the
+matching ones. Select the desired entry, and see the setting that contains the entered characters highlighted:
To quickly select the currently edited element (class, file, method or field) in any view (Project view,
+ Structure view or other),
+ press &shortcut:SelectIn;.
By pressing &shortcut:ChooseRunConfiguration; you can access the Run/Debug dropdown on the main toolbar,
+ without the need to use your mouse.
+
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/SelectTasks.html b/python/edu/resources/tips/SelectTasks.html
new file mode 100644
index 000000000000..db5fb1a34864
--- /dev/null
+++ b/python/edu/resources/tips/SelectTasks.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
When working with a lengthy list of tasks, you don't need to delete them one by one.
+ Select several tasks, using Shift
+ or Control/Command keys, click the right arrow, and then click
+Remove.
+
You can quickly review all styles currently applied to an HTML tag, by right-clicking the tag name and selecting
+ Show Applied Styles For Tag
+ from the context menu:
+ If you need more workspace, you can hide the tool windows bars:
+ click in the lower left corner.
+
+ If necessary, you can show the tool window buttons just for a moment. To do that, press the key Alt (for Windows/*nix) or
+Cmd (for Mac) twice and keep it down.
+ While the key is pressed, the tool window buttons are visible.
You can bring forward the list of all usages of a class, method or variable across the whole
+ project, and quickly jump to the selected usage. To do that, place the caret at the symbol's name or at its usage
+ in code and press &shortcut:ShowUsages; (Edit | Find | Show Usages
+ in the main menu), scroll the list and click the desired usage.
Keep your source code typo-free with the help of the built-in Spellchecker.
+
+
All texts, including comments, textual strings and literals, are inspected against the pre-defined dictionaries.
+All typos are highlighted, which leaves you with the task of choosing the correct word, accepting the current spelling, or disabling inspection.
+
Use &shortcut:ShowIntentionActions; to see the list of available actions.
If you lack words in the pre-defined dictionaries, you can create your own ones. A custom dictionary is a mere
+textual file with a .dic extension, with each word starting on a new line.
+
All you have to do is to point to the directories where your dictionaries are stored, in the
+Spelling of the Settings dialog.
+ When you want to catch exceptions thrown by some code fragment,
+ select it in the editor, press &shortcut:SurroundWith;
+ (Code | Surround With) and choose try/except.
+ This will automatically generate the except clause.
Use the Switcher (&shortcut:Switcher;) to switch between open files and tool windows.
+ Keeping Ctrl pressed, use the Up and Down arrow keys,
+ Tab or Shift+Tab, Alt for navigation;
+ use Delete or BackSpace to close editor tab or hide a tool window.
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/TabInEditorClose.html b/python/edu/resources/tips/TabInEditorClose.html
new file mode 100644
index 000000000000..dd3f371c0228
--- /dev/null
+++ b/python/edu/resources/tips/TabInEditorClose.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
Did you know that you can close tabs in the editor and the tool windows of &productName; without actually
+ using the context menu commands?
+ It is enough to point with your mouse cursor to a tab to be closed, and click the middle mouse button, or just
+ use the Shift+click combination.
When using Code Completion, you can accept the currently highlighted selection in the popup list
+ with &shortcut:EditorChooseLookupItemReplace; key.
+
Unlike accepting with the &shortcut:EditorChooseLookupItem; key, the selected name will overwrite
+ the rest of the name to the right of the caret. This can be especially useful for replacing one method
+ or variable name with another.
+ A special variant of the Code Completion feature invoked by pressing &shortcut:CodeCompletion; twice allows you to
+ complete
+ XML tag names from namespaces not declared in the current file.
+ If the namespace is not declared yet the declaration is generated automatically.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/python/edu/resources/tips/Templates.html b/python/edu/resources/tips/Templates.html
new file mode 100644
index 000000000000..91bd658bff3f
--- /dev/null
+++ b/python/edu/resources/tips/Templates.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ It's very easy to navigate between the Django templates and referencing views.
+
+ To do that, use the icons and
+ in the left gutter of the editor.
You don't need to leave &productName; to work with your favorite shell. Just choose
+Tools | Open Terminal on the main menu,
+and enjoy using the embedded local terminal.
&productName; makes it possible to
+launch the embedded local terminal using keyboard only. Press
+&shortcut:ActivateTerminalToolWindow;,
+and see the terminal running.
+
For the pattern search in the Go to Class,
+ Go to Symbol and
+ Go to File pop-up frames,
+ use * and space symbols.
+
* stands for any symbol.
+
Space at the end means the end of a pattern, and the preceding string will be considered not just a prefix but a whole pattern.
+ The list of the suggested names will be reduced accordingly.
Use Basic Completion
+ (&shortcut:CodeCompletion;) for completing words in text and comments in files of many different types.
+
All the words from the current file that start with the typed prefix will appear in the lookup list.
+
+
+
+
+
+
diff --git a/python/edu/resources/tips/css/tips.css b/python/edu/resources/tips/css/tips.css
new file mode 100644
index 000000000000..1dea96fc5169
--- /dev/null
+++ b/python/edu/resources/tips/css/tips.css
@@ -0,0 +1,60 @@
+body {
+ /*background: #ffffff;*/
+ margin-left: 10px;
+ margin-right: 2px;
+ margin-bottom: 6px;
+}
+h1, p, ul {
+ font-family: 'MS Reference Sans Serif', verdana, arial, sans-serif;
+}
+.code, .code_emphasis, .code_keyword, pre, .shortcut {
+ font-family: 'Lucida Console', monospace;
+}
+h1, p, pre, ul {
+ font-size: 10px;
+ /*color: #3f3f3f;*/
+}
+p, ul {
+ margin-top: 6px;
+}
+h1, p, ul {
+ margin-bottom: 0;
+}
+ul {
+ margin-left: 0;
+ padding-left: 14px;
+}
+h1, .image, pre {
+ margin-top: 10px;
+}
+.image, pre {
+ margin-bottom: 2px;
+}
+pre {
+ margin-right: 6px;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #d0d0d0;
+ background-color: #fbfbfb;
+ padding-left: 10px;
+ padding-top: 6px;
+ padding-bottom: 6px;
+}
+.control, h1 {
+ font-weight: bold;
+}
+.control {
+ color: #808080;
+}
+.caret, .code_emphasis, .code_keyword, .emphasis, .shortcut {
+ color: #990000;
+}
+pre .keyword{
+ color: #000080;
+}
+h1 .product {
+ color: #264db5;
+}
+h1 .version {
+ color: #f58220;
+}
\ No newline at end of file
diff --git a/python/edu/resources/tips/css/tips_darcula.css b/python/edu/resources/tips/css/tips_darcula.css
new file mode 100644
index 000000000000..5524189d342f
--- /dev/null
+++ b/python/edu/resources/tips/css/tips_darcula.css
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2000-2013 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+body {
+ margin-left: 10px;
+ margin-right: 2px;
+ margin-bottom: 6px;
+}
+h1, p, ul {
+ font-family: 'MS Reference Sans Serif', verdana, arial, sans-serif;
+}
+.code, .code_emphasis, .code_keyword, pre, .shortcut {
+ font-family: 'Lucida Console', monospace;
+}
+h1, p, pre, ul {
+ font-size: 10px;
+ /*color: #3f3f3f;*/
+}
+p, ul {
+ margin-top: 6px;
+}
+h1, p, ul {
+ margin-bottom: 0;
+}
+ul {
+ margin-left: 0;
+ padding-left: 14px;
+}
+h1, .image, pre {
+ margin-top: 10px;
+}
+.image, pre {
+ margin-bottom: 2px;
+}
+pre {
+ margin-right: 6px;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #d0d0d0;
+ background-color: #fbfbfb;
+ padding-left: 10px;
+ padding-top: 6px;
+ padding-bottom: 6px;
+}
+.control, h1 {
+ font-weight: bold;
+}
+.control {
+ color: #d19a67;
+}
+.caret, .code_emphasis, .code_keyword, .emphasis, .shortcut {
+ color: #cb7d4a;
+ font-weight: bold;
+}
+pre .keyword{
+ color: #cb7832;
+}
+h1 .product {
+ color: #5275d0;
+}
+h1 .version {
+ color: #f58220;
+}
\ No newline at end of file
diff --git a/python/edu/resources/tips/images/CodeCompletionInSearch.png b/python/edu/resources/tips/images/CodeCompletionInSearch.png
new file mode 100644
index 000000000000..f4aa5e71bc48
Binary files /dev/null and b/python/edu/resources/tips/images/CodeCompletionInSearch.png differ
diff --git a/python/edu/resources/tips/images/CodeCompletionInSearch@2x.png b/python/edu/resources/tips/images/CodeCompletionInSearch@2x.png
new file mode 100644
index 000000000000..ffdc6ecd1228
Binary files /dev/null and b/python/edu/resources/tips/images/CodeCompletionInSearch@2x.png differ
diff --git a/python/edu/resources/tips/images/CodeCompletionInSearch@2x_dark.png b/python/edu/resources/tips/images/CodeCompletionInSearch@2x_dark.png
new file mode 100644
index 000000000000..13a36f0b9cb0
Binary files /dev/null and b/python/edu/resources/tips/images/CodeCompletionInSearch@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/CodeCompletionInSearch_dark.png b/python/edu/resources/tips/images/CodeCompletionInSearch_dark.png
new file mode 100644
index 000000000000..69c9b5d8bca3
Binary files /dev/null and b/python/edu/resources/tips/images/CodeCompletionInSearch_dark.png differ
diff --git a/python/edu/resources/tips/images/RunConfigFolder.png b/python/edu/resources/tips/images/RunConfigFolder.png
new file mode 100644
index 000000000000..b9badc177a1f
Binary files /dev/null and b/python/edu/resources/tips/images/RunConfigFolder.png differ
diff --git a/python/edu/resources/tips/images/RunConfigFolder@2x.png b/python/edu/resources/tips/images/RunConfigFolder@2x.png
new file mode 100644
index 000000000000..ae8a0ebe8992
Binary files /dev/null and b/python/edu/resources/tips/images/RunConfigFolder@2x.png differ
diff --git a/python/edu/resources/tips/images/RunConfigFolder@2x_dark.png b/python/edu/resources/tips/images/RunConfigFolder@2x_dark.png
new file mode 100644
index 000000000000..34bdb8694790
Binary files /dev/null and b/python/edu/resources/tips/images/RunConfigFolder@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/RunConfigFolder_dark.png b/python/edu/resources/tips/images/RunConfigFolder_dark.png
new file mode 100644
index 000000000000..c1c4e99ed1a4
Binary files /dev/null and b/python/edu/resources/tips/images/RunConfigFolder_dark.png differ
diff --git a/python/edu/resources/tips/images/SpeedSearchInLiveTemplates.png b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates.png
new file mode 100644
index 000000000000..586a47de63de
Binary files /dev/null and b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates.png differ
diff --git a/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x.png b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x.png
new file mode 100644
index 000000000000..ae951e8bf066
Binary files /dev/null and b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x.png differ
diff --git a/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x_dark.png b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x_dark.png
new file mode 100644
index 000000000000..562e5c0fb3bf
Binary files /dev/null and b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/SpeedSearchInLiveTemplates_dark.png b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates_dark.png
new file mode 100644
index 000000000000..5def14aa5f36
Binary files /dev/null and b/python/edu/resources/tips/images/SpeedSearchInLiveTemplates_dark.png differ
diff --git a/python/edu/resources/tips/images/add_remote_interpreter.png b/python/edu/resources/tips/images/add_remote_interpreter.png
new file mode 100644
index 000000000000..d9370e4468fb
Binary files /dev/null and b/python/edu/resources/tips/images/add_remote_interpreter.png differ
diff --git a/python/edu/resources/tips/images/add_remote_interpreter@2x.png b/python/edu/resources/tips/images/add_remote_interpreter@2x.png
new file mode 100644
index 000000000000..01712503c0ac
Binary files /dev/null and b/python/edu/resources/tips/images/add_remote_interpreter@2x.png differ
diff --git a/python/edu/resources/tips/images/add_remote_interpreter@2x_dark.png b/python/edu/resources/tips/images/add_remote_interpreter@2x_dark.png
new file mode 100644
index 000000000000..f5758134e8cb
Binary files /dev/null and b/python/edu/resources/tips/images/add_remote_interpreter@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/add_remote_interpreter_dark.png b/python/edu/resources/tips/images/add_remote_interpreter_dark.png
new file mode 100644
index 000000000000..81177f5dd4d6
Binary files /dev/null and b/python/edu/resources/tips/images/add_remote_interpreter_dark.png differ
diff --git a/python/edu/resources/tips/images/annotationShowDiff.png b/python/edu/resources/tips/images/annotationShowDiff.png
new file mode 100644
index 000000000000..f31b70798265
Binary files /dev/null and b/python/edu/resources/tips/images/annotationShowDiff.png differ
diff --git a/python/edu/resources/tips/images/annotationShowDiff@2x.png b/python/edu/resources/tips/images/annotationShowDiff@2x.png
new file mode 100644
index 000000000000..22cd9dc11b73
Binary files /dev/null and b/python/edu/resources/tips/images/annotationShowDiff@2x.png differ
diff --git a/python/edu/resources/tips/images/annotationShowDiff@2x_dark.png b/python/edu/resources/tips/images/annotationShowDiff@2x_dark.png
new file mode 100644
index 000000000000..ebe7bd7d8702
Binary files /dev/null and b/python/edu/resources/tips/images/annotationShowDiff@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/annotationShowDiff_dark.png b/python/edu/resources/tips/images/annotationShowDiff_dark.png
new file mode 100644
index 000000000000..f91539d14c9f
Binary files /dev/null and b/python/edu/resources/tips/images/annotationShowDiff_dark.png differ
diff --git a/python/edu/resources/tips/images/breakpoint_speedmenu.png b/python/edu/resources/tips/images/breakpoint_speedmenu.png
new file mode 100644
index 000000000000..51c8cdedf4ef
Binary files /dev/null and b/python/edu/resources/tips/images/breakpoint_speedmenu.png differ
diff --git a/python/edu/resources/tips/images/breakpoint_speedmenu@2x.png b/python/edu/resources/tips/images/breakpoint_speedmenu@2x.png
new file mode 100644
index 000000000000..cb0eb1b1bec2
Binary files /dev/null and b/python/edu/resources/tips/images/breakpoint_speedmenu@2x.png differ
diff --git a/python/edu/resources/tips/images/breakpoint_speedmenu@2x_dark.png b/python/edu/resources/tips/images/breakpoint_speedmenu@2x_dark.png
new file mode 100644
index 000000000000..c384649ddc14
Binary files /dev/null and b/python/edu/resources/tips/images/breakpoint_speedmenu@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/breakpoint_speedmenu@_dark.png b/python/edu/resources/tips/images/breakpoint_speedmenu@_dark.png
new file mode 100644
index 000000000000..f51e9a5c1ecf
Binary files /dev/null and b/python/edu/resources/tips/images/breakpoint_speedmenu@_dark.png differ
diff --git a/python/edu/resources/tips/images/browse_remote_hosts.png b/python/edu/resources/tips/images/browse_remote_hosts.png
new file mode 100644
index 000000000000..fc79b19fe0e3
Binary files /dev/null and b/python/edu/resources/tips/images/browse_remote_hosts.png differ
diff --git a/python/edu/resources/tips/images/builtInServer.png b/python/edu/resources/tips/images/builtInServer.png
new file mode 100644
index 000000000000..068f8228cad4
Binary files /dev/null and b/python/edu/resources/tips/images/builtInServer.png differ
diff --git a/python/edu/resources/tips/images/builtInServer@2x.png b/python/edu/resources/tips/images/builtInServer@2x.png
new file mode 100644
index 000000000000..09b46ff0b969
Binary files /dev/null and b/python/edu/resources/tips/images/builtInServer@2x.png differ
diff --git a/python/edu/resources/tips/images/builtInServer@2x_dark.png b/python/edu/resources/tips/images/builtInServer@2x_dark.png
new file mode 100644
index 000000000000..215fd3e55f1d
Binary files /dev/null and b/python/edu/resources/tips/images/builtInServer@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/builtInServer@_dark.png b/python/edu/resources/tips/images/builtInServer@_dark.png
new file mode 100644
index 000000000000..4e3d5a403df4
Binary files /dev/null and b/python/edu/resources/tips/images/builtInServer@_dark.png differ
diff --git a/python/edu/resources/tips/images/bullet.png b/python/edu/resources/tips/images/bullet.png
new file mode 100644
index 000000000000..bc9f6a70cbde
Binary files /dev/null and b/python/edu/resources/tips/images/bullet.png differ
diff --git a/python/edu/resources/tips/images/camel_completion.png b/python/edu/resources/tips/images/camel_completion.png
new file mode 100644
index 000000000000..45c166b31404
Binary files /dev/null and b/python/edu/resources/tips/images/camel_completion.png differ
diff --git a/python/edu/resources/tips/images/camel_completion@2x.png b/python/edu/resources/tips/images/camel_completion@2x.png
new file mode 100644
index 000000000000..55fb7a737d37
Binary files /dev/null and b/python/edu/resources/tips/images/camel_completion@2x.png differ
diff --git a/python/edu/resources/tips/images/camel_completion@2x_dark.png b/python/edu/resources/tips/images/camel_completion@2x_dark.png
new file mode 100644
index 000000000000..1c9f53aa8521
Binary files /dev/null and b/python/edu/resources/tips/images/camel_completion@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/camel_completion_dark.png b/python/edu/resources/tips/images/camel_completion_dark.png
new file mode 100644
index 000000000000..d4ea6e880fbb
Binary files /dev/null and b/python/edu/resources/tips/images/camel_completion_dark.png differ
diff --git a/python/edu/resources/tips/images/camel_goto.png b/python/edu/resources/tips/images/camel_goto.png
new file mode 100644
index 000000000000..28405e5da141
Binary files /dev/null and b/python/edu/resources/tips/images/camel_goto.png differ
diff --git a/python/edu/resources/tips/images/camel_goto@2x.png b/python/edu/resources/tips/images/camel_goto@2x.png
new file mode 100644
index 000000000000..31f2be46dbd6
Binary files /dev/null and b/python/edu/resources/tips/images/camel_goto@2x.png differ
diff --git a/python/edu/resources/tips/images/camel_goto@2x_dark.png b/python/edu/resources/tips/images/camel_goto@2x_dark.png
new file mode 100644
index 000000000000..3ed950fa449b
Binary files /dev/null and b/python/edu/resources/tips/images/camel_goto@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/camel_goto_dark.png b/python/edu/resources/tips/images/camel_goto_dark.png
new file mode 100644
index 000000000000..0871187f8043
Binary files /dev/null and b/python/edu/resources/tips/images/camel_goto_dark.png differ
diff --git a/python/edu/resources/tips/images/changeLookupSorting.png b/python/edu/resources/tips/images/changeLookupSorting.png
new file mode 100644
index 000000000000..63155a3eebc7
Binary files /dev/null and b/python/edu/resources/tips/images/changeLookupSorting.png differ
diff --git a/python/edu/resources/tips/images/changeLookupSorting@2x.png b/python/edu/resources/tips/images/changeLookupSorting@2x.png
new file mode 100644
index 000000000000..5fd6b02d25f0
Binary files /dev/null and b/python/edu/resources/tips/images/changeLookupSorting@2x.png differ
diff --git a/python/edu/resources/tips/images/changeLookupSorting@2x_dark.png b/python/edu/resources/tips/images/changeLookupSorting@2x_dark.png
new file mode 100644
index 000000000000..e87e55ee1579
Binary files /dev/null and b/python/edu/resources/tips/images/changeLookupSorting@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/changeLookupSorting_dark.png b/python/edu/resources/tips/images/changeLookupSorting_dark.png
new file mode 100644
index 000000000000..4e7f0df5a4c8
Binary files /dev/null and b/python/edu/resources/tips/images/changeLookupSorting_dark.png differ
diff --git a/python/edu/resources/tips/images/checkRegExp.png b/python/edu/resources/tips/images/checkRegExp.png
new file mode 100644
index 000000000000..8d74fbe8716b
Binary files /dev/null and b/python/edu/resources/tips/images/checkRegExp.png differ
diff --git a/python/edu/resources/tips/images/checkRegExp@2x.png b/python/edu/resources/tips/images/checkRegExp@2x.png
new file mode 100644
index 000000000000..2a20810d1f9f
Binary files /dev/null and b/python/edu/resources/tips/images/checkRegExp@2x.png differ
diff --git a/python/edu/resources/tips/images/checkRegExp@2x_dark.png b/python/edu/resources/tips/images/checkRegExp@2x_dark.png
new file mode 100644
index 000000000000..26dcf18e1628
Binary files /dev/null and b/python/edu/resources/tips/images/checkRegExp@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/checkRegExp_dark.png b/python/edu/resources/tips/images/checkRegExp_dark.png
new file mode 100644
index 000000000000..909fc3d43a75
Binary files /dev/null and b/python/edu/resources/tips/images/checkRegExp_dark.png differ
diff --git a/python/edu/resources/tips/images/class_name_completion.png b/python/edu/resources/tips/images/class_name_completion.png
new file mode 100644
index 000000000000..5c517e0de148
Binary files /dev/null and b/python/edu/resources/tips/images/class_name_completion.png differ
diff --git a/python/edu/resources/tips/images/class_name_completion@2x.png b/python/edu/resources/tips/images/class_name_completion@2x.png
new file mode 100644
index 000000000000..394a97748df3
Binary files /dev/null and b/python/edu/resources/tips/images/class_name_completion@2x.png differ
diff --git a/python/edu/resources/tips/images/class_name_completion@2x_dark.png b/python/edu/resources/tips/images/class_name_completion@2x_dark.png
new file mode 100644
index 000000000000..e6bbe34db2b0
Binary files /dev/null and b/python/edu/resources/tips/images/class_name_completion@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/class_name_completion_dark.png b/python/edu/resources/tips/images/class_name_completion_dark.png
new file mode 100644
index 000000000000..6f8793338c64
Binary files /dev/null and b/python/edu/resources/tips/images/class_name_completion_dark.png differ
diff --git a/python/edu/resources/tips/images/close1.png b/python/edu/resources/tips/images/close1.png
new file mode 100644
index 000000000000..c09b94d4e608
Binary files /dev/null and b/python/edu/resources/tips/images/close1.png differ
diff --git a/python/edu/resources/tips/images/close_others.png b/python/edu/resources/tips/images/close_others.png
new file mode 100644
index 000000000000..9c860503f631
Binary files /dev/null and b/python/edu/resources/tips/images/close_others.png differ
diff --git a/python/edu/resources/tips/images/close_others@2x.png b/python/edu/resources/tips/images/close_others@2x.png
new file mode 100644
index 000000000000..2b1654bdb890
Binary files /dev/null and b/python/edu/resources/tips/images/close_others@2x.png differ
diff --git a/python/edu/resources/tips/images/close_others@2x_dark.png b/python/edu/resources/tips/images/close_others@2x_dark.png
new file mode 100644
index 000000000000..f4a8ecebbb59
Binary files /dev/null and b/python/edu/resources/tips/images/close_others@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/close_others_dark.png b/python/edu/resources/tips/images/close_others_dark.png
new file mode 100644
index 000000000000..903575f4c5de
Binary files /dev/null and b/python/edu/resources/tips/images/close_others_dark.png differ
diff --git a/python/edu/resources/tips/images/code_completion.png b/python/edu/resources/tips/images/code_completion.png
new file mode 100644
index 000000000000..cd51006c5dad
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion.png differ
diff --git a/python/edu/resources/tips/images/code_completion@2x.png b/python/edu/resources/tips/images/code_completion@2x.png
new file mode 100644
index 000000000000..933f30e2939b
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion@2x.png differ
diff --git a/python/edu/resources/tips/images/code_completion@2x_dark.png b/python/edu/resources/tips/images/code_completion@2x_dark.png
new file mode 100644
index 000000000000..c1c078ec50cb
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/code_completion_dark.png b/python/edu/resources/tips/images/code_completion_dark.png
new file mode 100644
index 000000000000..e932b9a4d9b8
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_dark.png differ
diff --git a/python/edu/resources/tips/images/code_completion_middle.png b/python/edu/resources/tips/images/code_completion_middle.png
new file mode 100644
index 000000000000..7dd4008426c1
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_middle.png differ
diff --git a/python/edu/resources/tips/images/code_completion_middle@2x.png b/python/edu/resources/tips/images/code_completion_middle@2x.png
new file mode 100644
index 000000000000..4df16b9eb020
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_middle@2x.png differ
diff --git a/python/edu/resources/tips/images/code_completion_middle@2x_dark.png b/python/edu/resources/tips/images/code_completion_middle@2x_dark.png
new file mode 100644
index 000000000000..2a72b63ef76e
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_middle@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/code_completion_middle_dark.png b/python/edu/resources/tips/images/code_completion_middle_dark.png
new file mode 100644
index 000000000000..392db57c3ff2
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_middle_dark.png differ
diff --git a/python/edu/resources/tips/images/code_completion_no_shift.png b/python/edu/resources/tips/images/code_completion_no_shift.png
new file mode 100644
index 000000000000..0907cb0d9096
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_no_shift.png differ
diff --git a/python/edu/resources/tips/images/code_completion_no_shift@2x.png b/python/edu/resources/tips/images/code_completion_no_shift@2x.png
new file mode 100644
index 000000000000..7680b7c895d8
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_no_shift@2x.png differ
diff --git a/python/edu/resources/tips/images/code_completion_no_shift@2x_dark.png b/python/edu/resources/tips/images/code_completion_no_shift@2x_dark.png
new file mode 100644
index 000000000000..e1d5fa996600
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_no_shift@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/code_completion_no_shift_dark.png b/python/edu/resources/tips/images/code_completion_no_shift_dark.png
new file mode 100644
index 000000000000..3394c0e1b272
Binary files /dev/null and b/python/edu/resources/tips/images/code_completion_no_shift_dark.png differ
diff --git a/python/edu/resources/tips/images/coloredFiles.png b/python/edu/resources/tips/images/coloredFiles.png
new file mode 100644
index 000000000000..b68571305ded
Binary files /dev/null and b/python/edu/resources/tips/images/coloredFiles.png differ
diff --git a/python/edu/resources/tips/images/coloredFiles@2x.png b/python/edu/resources/tips/images/coloredFiles@2x.png
new file mode 100644
index 000000000000..f26012847bdf
Binary files /dev/null and b/python/edu/resources/tips/images/coloredFiles@2x.png differ
diff --git a/python/edu/resources/tips/images/coloredFiles@2x_dark.png b/python/edu/resources/tips/images/coloredFiles@2x_dark.png
new file mode 100644
index 000000000000..3691b6d759e7
Binary files /dev/null and b/python/edu/resources/tips/images/coloredFiles@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/coloredFiles_dark.png b/python/edu/resources/tips/images/coloredFiles_dark.png
new file mode 100644
index 000000000000..45b3d008288f
Binary files /dev/null and b/python/edu/resources/tips/images/coloredFiles_dark.png differ
diff --git a/python/edu/resources/tips/images/columnSelection.png b/python/edu/resources/tips/images/columnSelection.png
new file mode 100644
index 000000000000..2e3b62c77199
Binary files /dev/null and b/python/edu/resources/tips/images/columnSelection.png differ
diff --git a/python/edu/resources/tips/images/columnSelection@2x.png b/python/edu/resources/tips/images/columnSelection@2x.png
new file mode 100644
index 000000000000..56fbe0c8bab6
Binary files /dev/null and b/python/edu/resources/tips/images/columnSelection@2x.png differ
diff --git a/python/edu/resources/tips/images/columnSelection@2x_dark.png b/python/edu/resources/tips/images/columnSelection@2x_dark.png
new file mode 100644
index 000000000000..0e8c967186ef
Binary files /dev/null and b/python/edu/resources/tips/images/columnSelection@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/columnSelection_dark.png b/python/edu/resources/tips/images/columnSelection_dark.png
new file mode 100644
index 000000000000..a676d7e74311
Binary files /dev/null and b/python/edu/resources/tips/images/columnSelection_dark.png differ
diff --git a/python/edu/resources/tips/images/completion_in_html.png b/python/edu/resources/tips/images/completion_in_html.png
new file mode 100644
index 000000000000..9c20bb436faf
Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html.png differ
diff --git a/python/edu/resources/tips/images/completion_in_html2.png b/python/edu/resources/tips/images/completion_in_html2.png
new file mode 100644
index 000000000000..b51fb2c76303
Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html2.png differ
diff --git a/python/edu/resources/tips/images/completion_in_html2@2x.png b/python/edu/resources/tips/images/completion_in_html2@2x.png
new file mode 100644
index 000000000000..748e6678fb80
Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html2@2x.png differ
diff --git a/python/edu/resources/tips/images/completion_in_html2@2x_dark.png b/python/edu/resources/tips/images/completion_in_html2@2x_dark.png
new file mode 100644
index 000000000000..cb619b32d763
Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html2@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/completion_in_html2_dark.png b/python/edu/resources/tips/images/completion_in_html2_dark.png
new file mode 100644
index 000000000000..306428233ccf
Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html2_dark.png differ
diff --git a/python/edu/resources/tips/images/completion_in_html@2x.png b/python/edu/resources/tips/images/completion_in_html@2x.png
new file mode 100644
index 000000000000..6a62d727ee18
Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html@2x.png differ
diff --git a/python/edu/resources/tips/images/completion_in_html@2x_dark.png b/python/edu/resources/tips/images/completion_in_html@2x_dark.png
new file mode 100644
index 000000000000..ffbf46694702
Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/completion_in_html_dark.png b/python/edu/resources/tips/images/completion_in_html_dark.png
new file mode 100644
index 000000000000..f845b3ca343e
Binary files /dev/null and b/python/edu/resources/tips/images/completion_in_html_dark.png differ
diff --git a/python/edu/resources/tips/images/cssColor.png b/python/edu/resources/tips/images/cssColor.png
new file mode 100644
index 000000000000..a6bdd6e6539a
Binary files /dev/null and b/python/edu/resources/tips/images/cssColor.png differ
diff --git a/python/edu/resources/tips/images/cssColor@2x.png b/python/edu/resources/tips/images/cssColor@2x.png
new file mode 100644
index 000000000000..e0f272336d87
Binary files /dev/null and b/python/edu/resources/tips/images/cssColor@2x.png differ
diff --git a/python/edu/resources/tips/images/cssColor@2x_dark.png b/python/edu/resources/tips/images/cssColor@2x_dark.png
new file mode 100644
index 000000000000..8ff841ee6518
Binary files /dev/null and b/python/edu/resources/tips/images/cssColor@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/cssColor_dark.png b/python/edu/resources/tips/images/cssColor_dark.png
new file mode 100644
index 000000000000..e37bb9a94361
Binary files /dev/null and b/python/edu/resources/tips/images/cssColor_dark.png differ
diff --git a/python/edu/resources/tips/images/ctrl_click.png b/python/edu/resources/tips/images/ctrl_click.png
new file mode 100644
index 000000000000..fd35a0329fea
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_click.png differ
diff --git a/python/edu/resources/tips/images/ctrl_click@2x.png b/python/edu/resources/tips/images/ctrl_click@2x.png
new file mode 100644
index 000000000000..7ce99f948362
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_click@2x.png differ
diff --git a/python/edu/resources/tips/images/ctrl_click@2x_dark.png b/python/edu/resources/tips/images/ctrl_click@2x_dark.png
new file mode 100644
index 000000000000..09f5b045dd53
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_click@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/ctrl_click_dark.png b/python/edu/resources/tips/images/ctrl_click_dark.png
new file mode 100644
index 000000000000..dc331f7dd952
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_click_dark.png differ
diff --git a/python/edu/resources/tips/images/ctrl_shift_i.png b/python/edu/resources/tips/images/ctrl_shift_i.png
new file mode 100644
index 000000000000..fbb8786d0a8d
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_i.png differ
diff --git a/python/edu/resources/tips/images/ctrl_shift_i@2x.png b/python/edu/resources/tips/images/ctrl_shift_i@2x.png
new file mode 100644
index 000000000000..6bb2978dd797
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_i@2x.png differ
diff --git a/python/edu/resources/tips/images/ctrl_shift_i@2x_dark.png b/python/edu/resources/tips/images/ctrl_shift_i@2x_dark.png
new file mode 100644
index 000000000000..3e29df03f92b
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_i@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/ctrl_shift_i_dark.png b/python/edu/resources/tips/images/ctrl_shift_i_dark.png
new file mode 100644
index 000000000000..61201ff0d5da
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_i_dark.png differ
diff --git a/python/edu/resources/tips/images/ctrl_shift_in_lookup.png b/python/edu/resources/tips/images/ctrl_shift_in_lookup.png
new file mode 100644
index 000000000000..073b31b4b15c
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_in_lookup.png differ
diff --git a/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x.png b/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x.png
new file mode 100644
index 000000000000..ee49d459fcab
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x.png differ
diff --git a/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x_dark.png b/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x_dark.png
new file mode 100644
index 000000000000..5730d9058dc9
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_in_lookup@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/ctrl_shift_in_lookup_dark.png b/python/edu/resources/tips/images/ctrl_shift_in_lookup_dark.png
new file mode 100644
index 000000000000..2ab9f9f93ebe
Binary files /dev/null and b/python/edu/resources/tips/images/ctrl_shift_in_lookup_dark.png differ
diff --git a/python/edu/resources/tips/images/default_template_language.png b/python/edu/resources/tips/images/default_template_language.png
new file mode 100644
index 000000000000..9e46fb11450f
Binary files /dev/null and b/python/edu/resources/tips/images/default_template_language.png differ
diff --git a/python/edu/resources/tips/images/default_template_language@2x.png b/python/edu/resources/tips/images/default_template_language@2x.png
new file mode 100644
index 000000000000..dddd008123e7
Binary files /dev/null and b/python/edu/resources/tips/images/default_template_language@2x.png differ
diff --git a/python/edu/resources/tips/images/default_template_language@2x_dark.png b/python/edu/resources/tips/images/default_template_language@2x_dark.png
new file mode 100644
index 000000000000..fa48561f94ec
Binary files /dev/null and b/python/edu/resources/tips/images/default_template_language@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/default_template_language_dark.png b/python/edu/resources/tips/images/default_template_language_dark.png
new file mode 100644
index 000000000000..486b30703799
Binary files /dev/null and b/python/edu/resources/tips/images/default_template_language_dark.png differ
diff --git a/python/edu/resources/tips/images/deployment.png b/python/edu/resources/tips/images/deployment.png
new file mode 100644
index 000000000000..f104afa208b5
Binary files /dev/null and b/python/edu/resources/tips/images/deployment.png differ
diff --git a/python/edu/resources/tips/images/deployment@2x.png b/python/edu/resources/tips/images/deployment@2x.png
new file mode 100644
index 000000000000..af593c25b0e0
Binary files /dev/null and b/python/edu/resources/tips/images/deployment@2x.png differ
diff --git a/python/edu/resources/tips/images/deployment@2x_dark.png b/python/edu/resources/tips/images/deployment@2x_dark.png
new file mode 100644
index 000000000000..ec478c090d29
Binary files /dev/null and b/python/edu/resources/tips/images/deployment@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/deployment_dark.png b/python/edu/resources/tips/images/deployment_dark.png
new file mode 100644
index 000000000000..6ed4686a0f70
Binary files /dev/null and b/python/edu/resources/tips/images/deployment_dark.png differ
diff --git a/python/edu/resources/tips/images/dragToOpen.png b/python/edu/resources/tips/images/dragToOpen.png
new file mode 100644
index 000000000000..30f564789e09
Binary files /dev/null and b/python/edu/resources/tips/images/dragToOpen.png differ
diff --git a/python/edu/resources/tips/images/dragToOpen@2x.png b/python/edu/resources/tips/images/dragToOpen@2x.png
new file mode 100644
index 000000000000..039e85b28a86
Binary files /dev/null and b/python/edu/resources/tips/images/dragToOpen@2x.png differ
diff --git a/python/edu/resources/tips/images/dragToOpen@2x_dark.png b/python/edu/resources/tips/images/dragToOpen@2x_dark.png
new file mode 100644
index 000000000000..55e3a479e795
Binary files /dev/null and b/python/edu/resources/tips/images/dragToOpen@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/dragToOpen_dark.png b/python/edu/resources/tips/images/dragToOpen_dark.png
new file mode 100644
index 000000000000..666446e5e761
Binary files /dev/null and b/python/edu/resources/tips/images/dragToOpen_dark.png differ
diff --git a/python/edu/resources/tips/images/editregexp.png b/python/edu/resources/tips/images/editregexp.png
new file mode 100644
index 000000000000..ccb059c5932a
Binary files /dev/null and b/python/edu/resources/tips/images/editregexp.png differ
diff --git a/python/edu/resources/tips/images/editregexp@2x.png b/python/edu/resources/tips/images/editregexp@2x.png
new file mode 100644
index 000000000000..1d80b7ad272e
Binary files /dev/null and b/python/edu/resources/tips/images/editregexp@2x.png differ
diff --git a/python/edu/resources/tips/images/editregexp@2x_dark.png b/python/edu/resources/tips/images/editregexp@2x_dark.png
new file mode 100644
index 000000000000..b2fb91911468
Binary files /dev/null and b/python/edu/resources/tips/images/editregexp@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/editregexp_dark.png b/python/edu/resources/tips/images/editregexp_dark.png
new file mode 100644
index 000000000000..37a44fc8bf72
Binary files /dev/null and b/python/edu/resources/tips/images/editregexp_dark.png differ
diff --git a/python/edu/resources/tips/images/emmet.png b/python/edu/resources/tips/images/emmet.png
new file mode 100644
index 000000000000..6c616f5376f5
Binary files /dev/null and b/python/edu/resources/tips/images/emmet.png differ
diff --git a/python/edu/resources/tips/images/emmet@2x.png b/python/edu/resources/tips/images/emmet@2x.png
new file mode 100644
index 000000000000..2c5d963fa8b9
Binary files /dev/null and b/python/edu/resources/tips/images/emmet@2x.png differ
diff --git a/python/edu/resources/tips/images/emmet@2x_dark.png b/python/edu/resources/tips/images/emmet@2x_dark.png
new file mode 100644
index 000000000000..37f6952953d8
Binary files /dev/null and b/python/edu/resources/tips/images/emmet@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/emmet_dark.png b/python/edu/resources/tips/images/emmet_dark.png
new file mode 100644
index 000000000000..671bcd3aec36
Binary files /dev/null and b/python/edu/resources/tips/images/emmet_dark.png differ
diff --git a/python/edu/resources/tips/images/enterDirectory.png b/python/edu/resources/tips/images/enterDirectory.png
new file mode 100644
index 000000000000..f5a882e53e6d
Binary files /dev/null and b/python/edu/resources/tips/images/enterDirectory.png differ
diff --git a/python/edu/resources/tips/images/enterDirectory@2x.png b/python/edu/resources/tips/images/enterDirectory@2x.png
new file mode 100644
index 000000000000..bfbadea02f63
Binary files /dev/null and b/python/edu/resources/tips/images/enterDirectory@2x.png differ
diff --git a/python/edu/resources/tips/images/enterDirectory@2x_dark.png b/python/edu/resources/tips/images/enterDirectory@2x_dark.png
new file mode 100644
index 000000000000..b4e271b043bd
Binary files /dev/null and b/python/edu/resources/tips/images/enterDirectory@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/enterDirectory_dark.png b/python/edu/resources/tips/images/enterDirectory_dark.png
new file mode 100644
index 000000000000..1facfef51c3c
Binary files /dev/null and b/python/edu/resources/tips/images/enterDirectory_dark.png differ
diff --git a/python/edu/resources/tips/images/extract_variable_1.png b/python/edu/resources/tips/images/extract_variable_1.png
new file mode 100644
index 000000000000..60e5d66a66ff
Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_1.png differ
diff --git a/python/edu/resources/tips/images/extract_variable_1@2x.png b/python/edu/resources/tips/images/extract_variable_1@2x.png
new file mode 100644
index 000000000000..b468e5f964af
Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_1@2x.png differ
diff --git a/python/edu/resources/tips/images/extract_variable_1@2x_dark.png b/python/edu/resources/tips/images/extract_variable_1@2x_dark.png
new file mode 100644
index 000000000000..dbc02dbce181
Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_1@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/extract_variable_1_dark.png b/python/edu/resources/tips/images/extract_variable_1_dark.png
new file mode 100644
index 000000000000..70647667d289
Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_1_dark.png differ
diff --git a/python/edu/resources/tips/images/extract_variable_2.png b/python/edu/resources/tips/images/extract_variable_2.png
new file mode 100644
index 000000000000..4e3b767db005
Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_2.png differ
diff --git a/python/edu/resources/tips/images/extract_variable_2@2x.png b/python/edu/resources/tips/images/extract_variable_2@2x.png
new file mode 100644
index 000000000000..49cdf5237c0f
Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_2@2x.png differ
diff --git a/python/edu/resources/tips/images/extract_variable_2@2x_dark.png b/python/edu/resources/tips/images/extract_variable_2@2x_dark.png
new file mode 100644
index 000000000000..120e9a5ace28
Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_2@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/extract_variable_2_dark.png b/python/edu/resources/tips/images/extract_variable_2_dark.png
new file mode 100644
index 000000000000..07e67b75cd86
Binary files /dev/null and b/python/edu/resources/tips/images/extract_variable_2_dark.png differ
diff --git a/python/edu/resources/tips/images/gotoFileLineNumber.png b/python/edu/resources/tips/images/gotoFileLineNumber.png
new file mode 100644
index 000000000000..3d4f72a847cc
Binary files /dev/null and b/python/edu/resources/tips/images/gotoFileLineNumber.png differ
diff --git a/python/edu/resources/tips/images/gotoFileLineNumber@2x.png b/python/edu/resources/tips/images/gotoFileLineNumber@2x.png
new file mode 100644
index 000000000000..5727edb925e0
Binary files /dev/null and b/python/edu/resources/tips/images/gotoFileLineNumber@2x.png differ
diff --git a/python/edu/resources/tips/images/gotoFileLineNumber@2x_dark.png b/python/edu/resources/tips/images/gotoFileLineNumber@2x_dark.png
new file mode 100644
index 000000000000..5bd7da5a480e
Binary files /dev/null and b/python/edu/resources/tips/images/gotoFileLineNumber@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/gotoFileLineNumber_dark.png b/python/edu/resources/tips/images/gotoFileLineNumber_dark.png
new file mode 100644
index 000000000000..52c9137e1205
Binary files /dev/null and b/python/edu/resources/tips/images/gotoFileLineNumber_dark.png differ
diff --git a/python/edu/resources/tips/images/goto_class.png b/python/edu/resources/tips/images/goto_class.png
new file mode 100644
index 000000000000..8eb339e8ff8d
Binary files /dev/null and b/python/edu/resources/tips/images/goto_class.png differ
diff --git a/python/edu/resources/tips/images/goto_class@2x.png b/python/edu/resources/tips/images/goto_class@2x.png
new file mode 100644
index 000000000000..e7fd228b3e25
Binary files /dev/null and b/python/edu/resources/tips/images/goto_class@2x.png differ
diff --git a/python/edu/resources/tips/images/goto_class@2x_dark.png b/python/edu/resources/tips/images/goto_class@2x_dark.png
new file mode 100644
index 000000000000..5c524ba1e61e
Binary files /dev/null and b/python/edu/resources/tips/images/goto_class@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/goto_class_dark.png b/python/edu/resources/tips/images/goto_class_dark.png
new file mode 100644
index 000000000000..6a9b461d86f7
Binary files /dev/null and b/python/edu/resources/tips/images/goto_class_dark.png differ
diff --git a/python/edu/resources/tips/images/goto_symbol.png b/python/edu/resources/tips/images/goto_symbol.png
new file mode 100644
index 000000000000..d10fdc33878f
Binary files /dev/null and b/python/edu/resources/tips/images/goto_symbol.png differ
diff --git a/python/edu/resources/tips/images/goto_symbol@2x.png b/python/edu/resources/tips/images/goto_symbol@2x.png
new file mode 100644
index 000000000000..86bae1245f3c
Binary files /dev/null and b/python/edu/resources/tips/images/goto_symbol@2x.png differ
diff --git a/python/edu/resources/tips/images/goto_symbol@2x_dark.png b/python/edu/resources/tips/images/goto_symbol@2x_dark.png
new file mode 100644
index 000000000000..03bf40eeff8b
Binary files /dev/null and b/python/edu/resources/tips/images/goto_symbol@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/goto_symbol_dark.png b/python/edu/resources/tips/images/goto_symbol_dark.png
new file mode 100644
index 000000000000..201ec6956816
Binary files /dev/null and b/python/edu/resources/tips/images/goto_symbol_dark.png differ
diff --git a/python/edu/resources/tips/images/goto_template_icon.png b/python/edu/resources/tips/images/goto_template_icon.png
new file mode 100644
index 000000000000..9a6f4f26cf19
Binary files /dev/null and b/python/edu/resources/tips/images/goto_template_icon.png differ
diff --git a/python/edu/resources/tips/images/goto_template_icon@2x.png b/python/edu/resources/tips/images/goto_template_icon@2x.png
new file mode 100644
index 000000000000..28f1ef8593c0
Binary files /dev/null and b/python/edu/resources/tips/images/goto_template_icon@2x.png differ
diff --git a/python/edu/resources/tips/images/goto_template_icon@2x_dark.png b/python/edu/resources/tips/images/goto_template_icon@2x_dark.png
new file mode 100644
index 000000000000..b9f13e1db3ce
Binary files /dev/null and b/python/edu/resources/tips/images/goto_template_icon@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/goto_template_icon_dark.png b/python/edu/resources/tips/images/goto_template_icon_dark.png
new file mode 100644
index 000000000000..5e91cc9e8b48
Binary files /dev/null and b/python/edu/resources/tips/images/goto_template_icon_dark.png differ
diff --git a/python/edu/resources/tips/images/goto_view.png b/python/edu/resources/tips/images/goto_view.png
new file mode 100644
index 000000000000..66fe57144daa
Binary files /dev/null and b/python/edu/resources/tips/images/goto_view.png differ
diff --git a/python/edu/resources/tips/images/goto_view@2x.png b/python/edu/resources/tips/images/goto_view@2x.png
new file mode 100644
index 000000000000..8d7d74b867f5
Binary files /dev/null and b/python/edu/resources/tips/images/goto_view@2x.png differ
diff --git a/python/edu/resources/tips/images/goto_view@2x_dark.png b/python/edu/resources/tips/images/goto_view@2x_dark.png
new file mode 100644
index 000000000000..11d399b65041
Binary files /dev/null and b/python/edu/resources/tips/images/goto_view@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/goto_view_dark.png b/python/edu/resources/tips/images/goto_view_dark.png
new file mode 100644
index 000000000000..df77bd4b745f
Binary files /dev/null and b/python/edu/resources/tips/images/goto_view_dark.png differ
diff --git a/python/edu/resources/tips/images/goto_view_icon.png b/python/edu/resources/tips/images/goto_view_icon.png
new file mode 100644
index 000000000000..4f7dab95b0aa
Binary files /dev/null and b/python/edu/resources/tips/images/goto_view_icon.png differ
diff --git a/python/edu/resources/tips/images/goto_view_icon@2x.png b/python/edu/resources/tips/images/goto_view_icon@2x.png
new file mode 100644
index 000000000000..579d967dd721
Binary files /dev/null and b/python/edu/resources/tips/images/goto_view_icon@2x.png differ
diff --git a/python/edu/resources/tips/images/goto_view_icon@2x_dark.png b/python/edu/resources/tips/images/goto_view_icon@2x_dark.png
new file mode 100644
index 000000000000..9a9c9255aeb1
Binary files /dev/null and b/python/edu/resources/tips/images/goto_view_icon@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/goto_view_icon_dark.png b/python/edu/resources/tips/images/goto_view_icon_dark.png
new file mode 100644
index 000000000000..dd6a508261ed
Binary files /dev/null and b/python/edu/resources/tips/images/goto_view_icon_dark.png differ
diff --git a/python/edu/resources/tips/images/hierarchy_browser.png b/python/edu/resources/tips/images/hierarchy_browser.png
new file mode 100644
index 000000000000..05bbb92f486a
Binary files /dev/null and b/python/edu/resources/tips/images/hierarchy_browser.png differ
diff --git a/python/edu/resources/tips/images/hierarchy_browser@2x.png b/python/edu/resources/tips/images/hierarchy_browser@2x.png
new file mode 100644
index 000000000000..a2f4cd29410e
Binary files /dev/null and b/python/edu/resources/tips/images/hierarchy_browser@2x.png differ
diff --git a/python/edu/resources/tips/images/hierarchy_browser@2x_dark.png b/python/edu/resources/tips/images/hierarchy_browser@2x_dark.png
new file mode 100644
index 000000000000..4b120e8f7ff6
Binary files /dev/null and b/python/edu/resources/tips/images/hierarchy_browser@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/hierarchy_browser_dark.png b/python/edu/resources/tips/images/hierarchy_browser_dark.png
new file mode 100644
index 000000000000..d52835cbd23f
Binary files /dev/null and b/python/edu/resources/tips/images/hierarchy_browser_dark.png differ
diff --git a/python/edu/resources/tips/images/image_completion.png b/python/edu/resources/tips/images/image_completion.png
new file mode 100644
index 000000000000..56a3599aac4e
Binary files /dev/null and b/python/edu/resources/tips/images/image_completion.png differ
diff --git a/python/edu/resources/tips/images/image_completion@2x.png b/python/edu/resources/tips/images/image_completion@2x.png
new file mode 100644
index 000000000000..2d96d83c224a
Binary files /dev/null and b/python/edu/resources/tips/images/image_completion@2x.png differ
diff --git a/python/edu/resources/tips/images/image_completion@2x_dark.png b/python/edu/resources/tips/images/image_completion@2x_dark.png
new file mode 100644
index 000000000000..99f6e96a7775
Binary files /dev/null and b/python/edu/resources/tips/images/image_completion@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/image_completion_dark.png b/python/edu/resources/tips/images/image_completion_dark.png
new file mode 100644
index 000000000000..3b396c908758
Binary files /dev/null and b/python/edu/resources/tips/images/image_completion_dark.png differ
diff --git a/python/edu/resources/tips/images/image_lookup.png b/python/edu/resources/tips/images/image_lookup.png
new file mode 100644
index 000000000000..cdff22d10bee
Binary files /dev/null and b/python/edu/resources/tips/images/image_lookup.png differ
diff --git a/python/edu/resources/tips/images/image_lookup@2x.png b/python/edu/resources/tips/images/image_lookup@2x.png
new file mode 100644
index 000000000000..05075dd8ed47
Binary files /dev/null and b/python/edu/resources/tips/images/image_lookup@2x.png differ
diff --git a/python/edu/resources/tips/images/image_lookup@2x_dark.png b/python/edu/resources/tips/images/image_lookup@2x_dark.png
new file mode 100644
index 000000000000..6ac2a465fc40
Binary files /dev/null and b/python/edu/resources/tips/images/image_lookup@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/image_lookup_dark.png b/python/edu/resources/tips/images/image_lookup_dark.png
new file mode 100644
index 000000000000..75af27a9d2e3
Binary files /dev/null and b/python/edu/resources/tips/images/image_lookup_dark.png differ
diff --git a/python/edu/resources/tips/images/issueNavigation.png b/python/edu/resources/tips/images/issueNavigation.png
new file mode 100644
index 000000000000..1fe942275cae
Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation.png differ
diff --git a/python/edu/resources/tips/images/issueNavigation1.png b/python/edu/resources/tips/images/issueNavigation1.png
new file mode 100644
index 000000000000..bc5c7bb84454
Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation1.png differ
diff --git a/python/edu/resources/tips/images/issueNavigation1@2x.png b/python/edu/resources/tips/images/issueNavigation1@2x.png
new file mode 100644
index 000000000000..31b4d3f9b114
Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation1@2x.png differ
diff --git a/python/edu/resources/tips/images/issueNavigation1@2x_dark.png b/python/edu/resources/tips/images/issueNavigation1@2x_dark.png
new file mode 100644
index 000000000000..9a654a24f8f0
Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation1@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/issueNavigation1_dark.png b/python/edu/resources/tips/images/issueNavigation1_dark.png
new file mode 100644
index 000000000000..fa1cdc666dca
Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation1_dark.png differ
diff --git a/python/edu/resources/tips/images/issueNavigation@2x.png b/python/edu/resources/tips/images/issueNavigation@2x.png
new file mode 100644
index 000000000000..835c9dba3bab
Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation@2x.png differ
diff --git a/python/edu/resources/tips/images/issueNavigation@2x_dark.png b/python/edu/resources/tips/images/issueNavigation@2x_dark.png
new file mode 100644
index 000000000000..47e4270ab066
Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/issueNavigation_dark.png b/python/edu/resources/tips/images/issueNavigation_dark.png
new file mode 100644
index 000000000000..4085ed8913df
Binary files /dev/null and b/python/edu/resources/tips/images/issueNavigation_dark.png differ
diff --git a/python/edu/resources/tips/images/jumplist.png b/python/edu/resources/tips/images/jumplist.png
new file mode 100644
index 000000000000..6a195bcdadb0
Binary files /dev/null and b/python/edu/resources/tips/images/jumplist.png differ
diff --git a/python/edu/resources/tips/images/jumplist@2x.png b/python/edu/resources/tips/images/jumplist@2x.png
new file mode 100644
index 000000000000..a3b8d7e182fe
Binary files /dev/null and b/python/edu/resources/tips/images/jumplist@2x.png differ
diff --git a/python/edu/resources/tips/images/jumplist@2x_dark.png b/python/edu/resources/tips/images/jumplist@2x_dark.png
new file mode 100644
index 000000000000..b9b279e38813
Binary files /dev/null and b/python/edu/resources/tips/images/jumplist@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/jumplist_dark.png b/python/edu/resources/tips/images/jumplist_dark.png
new file mode 100644
index 000000000000..3f0e90659c80
Binary files /dev/null and b/python/edu/resources/tips/images/jumplist_dark.png differ
diff --git a/python/edu/resources/tips/images/launch_console_in_debugger.png b/python/edu/resources/tips/images/launch_console_in_debugger.png
new file mode 100644
index 000000000000..77250807b2ff
Binary files /dev/null and b/python/edu/resources/tips/images/launch_console_in_debugger.png differ
diff --git a/python/edu/resources/tips/images/launch_console_in_debugger@2x.png b/python/edu/resources/tips/images/launch_console_in_debugger@2x.png
new file mode 100644
index 000000000000..468c49c70e05
Binary files /dev/null and b/python/edu/resources/tips/images/launch_console_in_debugger@2x.png differ
diff --git a/python/edu/resources/tips/images/launch_console_in_debugger@2x_dark.png b/python/edu/resources/tips/images/launch_console_in_debugger@2x_dark.png
new file mode 100644
index 000000000000..5f5381c8936d
Binary files /dev/null and b/python/edu/resources/tips/images/launch_console_in_debugger@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/launch_console_in_debugger_dark.png b/python/edu/resources/tips/images/launch_console_in_debugger_dark.png
new file mode 100644
index 000000000000..9fa62e0b9bb0
Binary files /dev/null and b/python/edu/resources/tips/images/launch_console_in_debugger_dark.png differ
diff --git a/python/edu/resources/tips/images/line_separator.png b/python/edu/resources/tips/images/line_separator.png
new file mode 100644
index 000000000000..61d20d18f3d7
Binary files /dev/null and b/python/edu/resources/tips/images/line_separator.png differ
diff --git a/python/edu/resources/tips/images/line_separator@2x.png b/python/edu/resources/tips/images/line_separator@2x.png
new file mode 100644
index 000000000000..bf67e11e42e8
Binary files /dev/null and b/python/edu/resources/tips/images/line_separator@2x.png differ
diff --git a/python/edu/resources/tips/images/line_separator@2x_dark.png b/python/edu/resources/tips/images/line_separator@2x_dark.png
new file mode 100644
index 000000000000..eb6f8ea3111f
Binary files /dev/null and b/python/edu/resources/tips/images/line_separator@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/line_separator_dark.png b/python/edu/resources/tips/images/line_separator_dark.png
new file mode 100644
index 000000000000..3d8b1a68ee53
Binary files /dev/null and b/python/edu/resources/tips/images/line_separator_dark.png differ
diff --git a/python/edu/resources/tips/images/line_separator_folder.png b/python/edu/resources/tips/images/line_separator_folder.png
new file mode 100644
index 000000000000..4ae8dc021f66
Binary files /dev/null and b/python/edu/resources/tips/images/line_separator_folder.png differ
diff --git a/python/edu/resources/tips/images/line_separator_folder@2x.png b/python/edu/resources/tips/images/line_separator_folder@2x.png
new file mode 100644
index 000000000000..782b58b8ad0d
Binary files /dev/null and b/python/edu/resources/tips/images/line_separator_folder@2x.png differ
diff --git a/python/edu/resources/tips/images/line_separator_folder@2x_dark.png b/python/edu/resources/tips/images/line_separator_folder@2x_dark.png
new file mode 100644
index 000000000000..d8ab14857a9b
Binary files /dev/null and b/python/edu/resources/tips/images/line_separator_folder@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/line_separator_folder_dark.png b/python/edu/resources/tips/images/line_separator_folder_dark.png
new file mode 100644
index 000000000000..c02c201218a2
Binary files /dev/null and b/python/edu/resources/tips/images/line_separator_folder_dark.png differ
diff --git a/python/edu/resources/tips/images/live_templates_1.png b/python/edu/resources/tips/images/live_templates_1.png
new file mode 100644
index 000000000000..b0fc1051a752
Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_1.png differ
diff --git a/python/edu/resources/tips/images/live_templates_1@2x.png b/python/edu/resources/tips/images/live_templates_1@2x.png
new file mode 100644
index 000000000000..ec456208d61d
Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_1@2x.png differ
diff --git a/python/edu/resources/tips/images/live_templates_1@2x_dark.png b/python/edu/resources/tips/images/live_templates_1@2x_dark.png
new file mode 100644
index 000000000000..c4dd574ab50e
Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_1@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/live_templates_1_dark.png b/python/edu/resources/tips/images/live_templates_1_dark.png
new file mode 100644
index 000000000000..8e3da85d2b62
Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_1_dark.png differ
diff --git a/python/edu/resources/tips/images/live_templates_2.png b/python/edu/resources/tips/images/live_templates_2.png
new file mode 100644
index 000000000000..2ed16fb57791
Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_2.png differ
diff --git a/python/edu/resources/tips/images/live_templates_2@2x.png b/python/edu/resources/tips/images/live_templates_2@2x.png
new file mode 100644
index 000000000000..54e6b059cd03
Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_2@2x.png differ
diff --git a/python/edu/resources/tips/images/live_templates_2@2x_dark.png b/python/edu/resources/tips/images/live_templates_2@2x_dark.png
new file mode 100644
index 000000000000..89fbb741fc1a
Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_2@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/live_templates_2_dark.png b/python/edu/resources/tips/images/live_templates_2_dark.png
new file mode 100644
index 000000000000..3431fdedf244
Binary files /dev/null and b/python/edu/resources/tips/images/live_templates_2_dark.png differ
diff --git a/python/edu/resources/tips/images/lower_left.png b/python/edu/resources/tips/images/lower_left.png
new file mode 100644
index 000000000000..771913eec97e
Binary files /dev/null and b/python/edu/resources/tips/images/lower_left.png differ
diff --git a/python/edu/resources/tips/images/lower_left@2x.png b/python/edu/resources/tips/images/lower_left@2x.png
new file mode 100644
index 000000000000..2839f4099299
Binary files /dev/null and b/python/edu/resources/tips/images/lower_left@2x.png differ
diff --git a/python/edu/resources/tips/images/lower_left@2x_dark.png b/python/edu/resources/tips/images/lower_left@2x_dark.png
new file mode 100644
index 000000000000..2c2a582a1db7
Binary files /dev/null and b/python/edu/resources/tips/images/lower_left@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/lower_left_dark.png b/python/edu/resources/tips/images/lower_left_dark.png
new file mode 100644
index 000000000000..19996d76492c
Binary files /dev/null and b/python/edu/resources/tips/images/lower_left_dark.png differ
diff --git a/python/edu/resources/tips/images/managepy.png b/python/edu/resources/tips/images/managepy.png
new file mode 100644
index 000000000000..6212233b8f49
Binary files /dev/null and b/python/edu/resources/tips/images/managepy.png differ
diff --git a/python/edu/resources/tips/images/managepy@2x.png b/python/edu/resources/tips/images/managepy@2x.png
new file mode 100644
index 000000000000..c29d6b71ef79
Binary files /dev/null and b/python/edu/resources/tips/images/managepy@2x.png differ
diff --git a/python/edu/resources/tips/images/managepy@2x_dark.png b/python/edu/resources/tips/images/managepy@2x_dark.png
new file mode 100644
index 000000000000..d87785601ced
Binary files /dev/null and b/python/edu/resources/tips/images/managepy@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/managepy_dark.png b/python/edu/resources/tips/images/managepy_dark.png
new file mode 100644
index 000000000000..9228a0d1c056
Binary files /dev/null and b/python/edu/resources/tips/images/managepy_dark.png differ
diff --git a/python/edu/resources/tips/images/method_separator.png b/python/edu/resources/tips/images/method_separator.png
new file mode 100644
index 000000000000..e458b8246566
Binary files /dev/null and b/python/edu/resources/tips/images/method_separator.png differ
diff --git a/python/edu/resources/tips/images/method_separator@2x.png b/python/edu/resources/tips/images/method_separator@2x.png
new file mode 100644
index 000000000000..d7221f809988
Binary files /dev/null and b/python/edu/resources/tips/images/method_separator@2x.png differ
diff --git a/python/edu/resources/tips/images/method_separator@2x_dark.png b/python/edu/resources/tips/images/method_separator@2x_dark.png
new file mode 100644
index 000000000000..9bd4e5d20b7c
Binary files /dev/null and b/python/edu/resources/tips/images/method_separator@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/method_separator_dark.png b/python/edu/resources/tips/images/method_separator_dark.png
new file mode 100644
index 000000000000..eed48d258960
Binary files /dev/null and b/python/edu/resources/tips/images/method_separator_dark.png differ
diff --git a/python/edu/resources/tips/images/move_to_changelist.png b/python/edu/resources/tips/images/move_to_changelist.png
new file mode 100644
index 000000000000..e5e95ff23a65
Binary files /dev/null and b/python/edu/resources/tips/images/move_to_changelist.png differ
diff --git a/python/edu/resources/tips/images/move_to_changelist@2x.png b/python/edu/resources/tips/images/move_to_changelist@2x.png
new file mode 100644
index 000000000000..893f9a9ce930
Binary files /dev/null and b/python/edu/resources/tips/images/move_to_changelist@2x.png differ
diff --git a/python/edu/resources/tips/images/move_to_changelist@2x_dark.png b/python/edu/resources/tips/images/move_to_changelist@2x_dark.png
new file mode 100644
index 000000000000..389c34e906e4
Binary files /dev/null and b/python/edu/resources/tips/images/move_to_changelist@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/move_to_changelist_dark.png b/python/edu/resources/tips/images/move_to_changelist_dark.png
new file mode 100644
index 000000000000..057bad2eb926
Binary files /dev/null and b/python/edu/resources/tips/images/move_to_changelist_dark.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_down.png b/python/edu/resources/tips/images/move_up_down_witharrows_down.png
new file mode 100644
index 000000000000..cb9469f63e18
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_down.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_down@2x.png b/python/edu/resources/tips/images/move_up_down_witharrows_down@2x.png
new file mode 100644
index 000000000000..1d689d73d905
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_down@2x.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_down@2x_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_down@2x_dark.png
new file mode 100644
index 000000000000..bb935b007863
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_down@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_down_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_down_dark.png
new file mode 100644
index 000000000000..2346d8cfe482
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_down_dark.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_initial.png b/python/edu/resources/tips/images/move_up_down_witharrows_initial.png
new file mode 100644
index 000000000000..82fd7469e1d2
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_initial.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x.png b/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x.png
new file mode 100644
index 000000000000..bd1792c520a4
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x_dark.png
new file mode 100644
index 000000000000..a476ac334c70
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_initial@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_initial_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_initial_dark.png
new file mode 100644
index 000000000000..8b84ae8430a7
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_initial_dark.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_up.png b/python/edu/resources/tips/images/move_up_down_witharrows_up.png
new file mode 100644
index 000000000000..e19c67b445ea
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_up.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_up@2x.png b/python/edu/resources/tips/images/move_up_down_witharrows_up@2x.png
new file mode 100644
index 000000000000..d0008e29dcb2
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_up@2x.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_up@2x_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_up@2x_dark.png
new file mode 100644
index 000000000000..124866ed802c
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_up@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/move_up_down_witharrows_up_dark.png b/python/edu/resources/tips/images/move_up_down_witharrows_up_dark.png
new file mode 100644
index 000000000000..7251cb33ac08
Binary files /dev/null and b/python/edu/resources/tips/images/move_up_down_witharrows_up_dark.png differ
diff --git a/python/edu/resources/tips/images/multicursor1@2x.png b/python/edu/resources/tips/images/multicursor1@2x.png
new file mode 100755
index 000000000000..29208468a665
Binary files /dev/null and b/python/edu/resources/tips/images/multicursor1@2x.png differ
diff --git a/python/edu/resources/tips/images/multicursor1@2x_dark.png b/python/edu/resources/tips/images/multicursor1@2x_dark.png
new file mode 100755
index 000000000000..04dbef34c971
Binary files /dev/null and b/python/edu/resources/tips/images/multicursor1@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/multicursor@2x.png b/python/edu/resources/tips/images/multicursor@2x.png
new file mode 100755
index 000000000000..d771d0a9aa0e
Binary files /dev/null and b/python/edu/resources/tips/images/multicursor@2x.png differ
diff --git a/python/edu/resources/tips/images/multicursor@2x_dark.png b/python/edu/resources/tips/images/multicursor@2x_dark.png
new file mode 100755
index 000000000000..dd93320f7b39
Binary files /dev/null and b/python/edu/resources/tips/images/multicursor@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/navigateToFilePath.png b/python/edu/resources/tips/images/navigateToFilePath.png
new file mode 100644
index 000000000000..ae4b78955a49
Binary files /dev/null and b/python/edu/resources/tips/images/navigateToFilePath.png differ
diff --git a/python/edu/resources/tips/images/navigateToFilePath@2x.png b/python/edu/resources/tips/images/navigateToFilePath@2x.png
new file mode 100644
index 000000000000..077f1831b68b
Binary files /dev/null and b/python/edu/resources/tips/images/navigateToFilePath@2x.png differ
diff --git a/python/edu/resources/tips/images/navigateToFilePath@2x_dark.png b/python/edu/resources/tips/images/navigateToFilePath@2x_dark.png
new file mode 100644
index 000000000000..a73df98e5da1
Binary files /dev/null and b/python/edu/resources/tips/images/navigateToFilePath@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/navigateToFilePath_dark.png b/python/edu/resources/tips/images/navigateToFilePath_dark.png
new file mode 100644
index 000000000000..756020ec39ab
Binary files /dev/null and b/python/edu/resources/tips/images/navigateToFilePath_dark.png differ
diff --git a/python/edu/resources/tips/images/navigationbar.png b/python/edu/resources/tips/images/navigationbar.png
new file mode 100644
index 000000000000..ba8c14720723
Binary files /dev/null and b/python/edu/resources/tips/images/navigationbar.png differ
diff --git a/python/edu/resources/tips/images/navigationbar@2x.png b/python/edu/resources/tips/images/navigationbar@2x.png
new file mode 100644
index 000000000000..fc2bcd07f705
Binary files /dev/null and b/python/edu/resources/tips/images/navigationbar@2x.png differ
diff --git a/python/edu/resources/tips/images/navigationbar@2x_dark.png b/python/edu/resources/tips/images/navigationbar@2x_dark.png
new file mode 100644
index 000000000000..5b69d321540a
Binary files /dev/null and b/python/edu/resources/tips/images/navigationbar@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/navigationbar_dark.png b/python/edu/resources/tips/images/navigationbar_dark.png
new file mode 100644
index 000000000000..03c5f6fe2522
Binary files /dev/null and b/python/edu/resources/tips/images/navigationbar_dark.png differ
diff --git a/python/edu/resources/tips/images/override_methods.png b/python/edu/resources/tips/images/override_methods.png
new file mode 100644
index 000000000000..2234f7fa98b6
Binary files /dev/null and b/python/edu/resources/tips/images/override_methods.png differ
diff --git a/python/edu/resources/tips/images/override_methods@2x.png b/python/edu/resources/tips/images/override_methods@2x.png
new file mode 100644
index 000000000000..94a83071e0f9
Binary files /dev/null and b/python/edu/resources/tips/images/override_methods@2x.png differ
diff --git a/python/edu/resources/tips/images/override_methods@2x_dark.png b/python/edu/resources/tips/images/override_methods@2x_dark.png
new file mode 100644
index 000000000000..789ac6ce95ca
Binary files /dev/null and b/python/edu/resources/tips/images/override_methods@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/override_methods_dark.png b/python/edu/resources/tips/images/override_methods_dark.png
new file mode 100644
index 000000000000..3d32dc7b142a
Binary files /dev/null and b/python/edu/resources/tips/images/override_methods_dark.png differ
diff --git a/python/edu/resources/tips/images/param_info.png b/python/edu/resources/tips/images/param_info.png
new file mode 100644
index 000000000000..b0b39e4998c1
Binary files /dev/null and b/python/edu/resources/tips/images/param_info.png differ
diff --git a/python/edu/resources/tips/images/param_info@2x.png b/python/edu/resources/tips/images/param_info@2x.png
new file mode 100644
index 000000000000..6e63f83dba6a
Binary files /dev/null and b/python/edu/resources/tips/images/param_info@2x.png differ
diff --git a/python/edu/resources/tips/images/param_info@2x_dark.png b/python/edu/resources/tips/images/param_info@2x_dark.png
new file mode 100644
index 000000000000..b65141148638
Binary files /dev/null and b/python/edu/resources/tips/images/param_info@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/param_info_dark.png b/python/edu/resources/tips/images/param_info_dark.png
new file mode 100644
index 000000000000..dcf76512342e
Binary files /dev/null and b/python/edu/resources/tips/images/param_info_dark.png differ
diff --git a/python/edu/resources/tips/images/pyColoredFiles.png b/python/edu/resources/tips/images/pyColoredFiles.png
new file mode 100644
index 000000000000..b2c7ef9ff282
Binary files /dev/null and b/python/edu/resources/tips/images/pyColoredFiles.png differ
diff --git a/python/edu/resources/tips/images/pyColoredFiles@2x.png b/python/edu/resources/tips/images/pyColoredFiles@2x.png
new file mode 100644
index 000000000000..3274e2ffaa8c
Binary files /dev/null and b/python/edu/resources/tips/images/pyColoredFiles@2x.png differ
diff --git a/python/edu/resources/tips/images/pyColoredFiles@2x_dark.png b/python/edu/resources/tips/images/pyColoredFiles@2x_dark.png
new file mode 100644
index 000000000000..69e38f9ecac3
Binary files /dev/null and b/python/edu/resources/tips/images/pyColoredFiles@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/pyColoredFiles_dark.png b/python/edu/resources/tips/images/pyColoredFiles_dark.png
new file mode 100644
index 000000000000..61e0cc1bcf70
Binary files /dev/null and b/python/edu/resources/tips/images/pyColoredFiles_dark.png differ
diff --git a/python/edu/resources/tips/images/pyconsole.png b/python/edu/resources/tips/images/pyconsole.png
new file mode 100644
index 000000000000..b319f10d9386
Binary files /dev/null and b/python/edu/resources/tips/images/pyconsole.png differ
diff --git a/python/edu/resources/tips/images/pyconsole@2x.png b/python/edu/resources/tips/images/pyconsole@2x.png
new file mode 100644
index 000000000000..caf7b5c979a7
Binary files /dev/null and b/python/edu/resources/tips/images/pyconsole@2x.png differ
diff --git a/python/edu/resources/tips/images/pyconsole@2x_dark.png b/python/edu/resources/tips/images/pyconsole@2x_dark.png
new file mode 100644
index 000000000000..b05cee2f17a0
Binary files /dev/null and b/python/edu/resources/tips/images/pyconsole@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/pyconsole_dark.png b/python/edu/resources/tips/images/pyconsole_dark.png
new file mode 100644
index 000000000000..8748fe1e59f5
Binary files /dev/null and b/python/edu/resources/tips/images/pyconsole_dark.png differ
diff --git a/python/edu/resources/tips/images/qdoc_live_template@2x-3.png b/python/edu/resources/tips/images/qdoc_live_template@2x-3.png
new file mode 100755
index 000000000000..ae79e7e1bb6d
Binary files /dev/null and b/python/edu/resources/tips/images/qdoc_live_template@2x-3.png differ
diff --git a/python/edu/resources/tips/images/qdoc_live_template@2x_dark-3.png b/python/edu/resources/tips/images/qdoc_live_template@2x_dark-3.png
new file mode 100755
index 000000000000..6b077c641d17
Binary files /dev/null and b/python/edu/resources/tips/images/qdoc_live_template@2x_dark-3.png differ
diff --git a/python/edu/resources/tips/images/quick_fix_options.png b/python/edu/resources/tips/images/quick_fix_options.png
new file mode 100644
index 000000000000..418a2524380a
Binary files /dev/null and b/python/edu/resources/tips/images/quick_fix_options.png differ
diff --git a/python/edu/resources/tips/images/quick_fix_options@2x.png b/python/edu/resources/tips/images/quick_fix_options@2x.png
new file mode 100644
index 000000000000..21e63469db24
Binary files /dev/null and b/python/edu/resources/tips/images/quick_fix_options@2x.png differ
diff --git a/python/edu/resources/tips/images/quick_fix_options@2x_dark.png b/python/edu/resources/tips/images/quick_fix_options@2x_dark.png
new file mode 100644
index 000000000000..aaf91a613d20
Binary files /dev/null and b/python/edu/resources/tips/images/quick_fix_options@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/quick_fix_options_dark.png b/python/edu/resources/tips/images/quick_fix_options_dark.png
new file mode 100644
index 000000000000..8a80f476646e
Binary files /dev/null and b/python/edu/resources/tips/images/quick_fix_options_dark.png differ
diff --git a/python/edu/resources/tips/images/quick_javadoc.png b/python/edu/resources/tips/images/quick_javadoc.png
new file mode 100644
index 000000000000..b19982d2f483
Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc.png differ
diff --git a/python/edu/resources/tips/images/quick_javadoc@2x.png b/python/edu/resources/tips/images/quick_javadoc@2x.png
new file mode 100644
index 000000000000..abbfebcc3056
Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc@2x.png differ
diff --git a/python/edu/resources/tips/images/quick_javadoc@2x_dark.png b/python/edu/resources/tips/images/quick_javadoc@2x_dark.png
new file mode 100644
index 000000000000..8f971f517d76
Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/quick_javadoc_dark.png b/python/edu/resources/tips/images/quick_javadoc_dark.png
new file mode 100644
index 000000000000..7f482d4ec962
Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc_dark.png differ
diff --git a/python/edu/resources/tips/images/quick_javadoc_in_lookups.png b/python/edu/resources/tips/images/quick_javadoc_in_lookups.png
new file mode 100644
index 000000000000..f346e103dd45
Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc_in_lookups.png differ
diff --git a/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x.png b/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x.png
new file mode 100644
index 000000000000..d782d4a39982
Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x.png differ
diff --git a/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x_dark.png b/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x_dark.png
new file mode 100644
index 000000000000..5af062aa49f4
Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc_in_lookups@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/quick_javadoc_in_lookups_dark.png b/python/edu/resources/tips/images/quick_javadoc_in_lookups_dark.png
new file mode 100644
index 000000000000..e1e954f4f153
Binary files /dev/null and b/python/edu/resources/tips/images/quick_javadoc_in_lookups_dark.png differ
diff --git a/python/edu/resources/tips/images/quick_switch_scheme.png b/python/edu/resources/tips/images/quick_switch_scheme.png
new file mode 100644
index 000000000000..b1f99b5c42cd
Binary files /dev/null and b/python/edu/resources/tips/images/quick_switch_scheme.png differ
diff --git a/python/edu/resources/tips/images/quick_switch_scheme@2x.png b/python/edu/resources/tips/images/quick_switch_scheme@2x.png
new file mode 100644
index 000000000000..7a9a3435eb45
Binary files /dev/null and b/python/edu/resources/tips/images/quick_switch_scheme@2x.png differ
diff --git a/python/edu/resources/tips/images/quick_switch_scheme@2x_dark.png b/python/edu/resources/tips/images/quick_switch_scheme@2x_dark.png
new file mode 100644
index 000000000000..ee68d67abe07
Binary files /dev/null and b/python/edu/resources/tips/images/quick_switch_scheme@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/quick_switch_scheme_dark.png b/python/edu/resources/tips/images/quick_switch_scheme_dark.png
new file mode 100644
index 000000000000..0ab7af56669a
Binary files /dev/null and b/python/edu/resources/tips/images/quick_switch_scheme_dark.png differ
diff --git a/python/edu/resources/tips/images/recentSearch.png b/python/edu/resources/tips/images/recentSearch.png
new file mode 100644
index 000000000000..18949394e842
Binary files /dev/null and b/python/edu/resources/tips/images/recentSearch.png differ
diff --git a/python/edu/resources/tips/images/recentSearch@2x.png b/python/edu/resources/tips/images/recentSearch@2x.png
new file mode 100644
index 000000000000..b39244becd4c
Binary files /dev/null and b/python/edu/resources/tips/images/recentSearch@2x.png differ
diff --git a/python/edu/resources/tips/images/recentSearch@2x_dark.png b/python/edu/resources/tips/images/recentSearch@2x_dark.png
new file mode 100644
index 000000000000..15e255f1aeaf
Binary files /dev/null and b/python/edu/resources/tips/images/recentSearch@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/recentSearch_dark.png b/python/edu/resources/tips/images/recentSearch_dark.png
new file mode 100644
index 000000000000..2c2acc561757
Binary files /dev/null and b/python/edu/resources/tips/images/recentSearch_dark.png differ
diff --git a/python/edu/resources/tips/images/recent_changes.png b/python/edu/resources/tips/images/recent_changes.png
new file mode 100644
index 000000000000..27470ca76575
Binary files /dev/null and b/python/edu/resources/tips/images/recent_changes.png differ
diff --git a/python/edu/resources/tips/images/recent_changes@2x.png b/python/edu/resources/tips/images/recent_changes@2x.png
new file mode 100644
index 000000000000..60d873c6de79
Binary files /dev/null and b/python/edu/resources/tips/images/recent_changes@2x.png differ
diff --git a/python/edu/resources/tips/images/recent_changes@2x_dark.png b/python/edu/resources/tips/images/recent_changes@2x_dark.png
new file mode 100644
index 000000000000..bf0463e9382c
Binary files /dev/null and b/python/edu/resources/tips/images/recent_changes@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/recent_changes_dark.png b/python/edu/resources/tips/images/recent_changes_dark.png
new file mode 100644
index 000000000000..a3abbdecb4f2
Binary files /dev/null and b/python/edu/resources/tips/images/recent_changes_dark.png differ
diff --git a/python/edu/resources/tips/images/recent_files_1.png b/python/edu/resources/tips/images/recent_files_1.png
new file mode 100644
index 000000000000..c10b423146b6
Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_1.png differ
diff --git a/python/edu/resources/tips/images/recent_files_1@2x.png b/python/edu/resources/tips/images/recent_files_1@2x.png
new file mode 100644
index 000000000000..634f836858b3
Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_1@2x.png differ
diff --git a/python/edu/resources/tips/images/recent_files_1@2x_dark.png b/python/edu/resources/tips/images/recent_files_1@2x_dark.png
new file mode 100644
index 000000000000..59ae46a98d76
Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_1@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/recent_files_1_dark.png b/python/edu/resources/tips/images/recent_files_1_dark.png
new file mode 100644
index 000000000000..125776961430
Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_1_dark.png differ
diff --git a/python/edu/resources/tips/images/recent_files_2.png b/python/edu/resources/tips/images/recent_files_2.png
new file mode 100644
index 000000000000..05698c860336
Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_2.png differ
diff --git a/python/edu/resources/tips/images/recent_files_2@2x.png b/python/edu/resources/tips/images/recent_files_2@2x.png
new file mode 100644
index 000000000000..7df083acf60f
Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_2@2x.png differ
diff --git a/python/edu/resources/tips/images/recent_files_2@2x_dark.png b/python/edu/resources/tips/images/recent_files_2@2x_dark.png
new file mode 100644
index 000000000000..f66da1b31829
Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_2@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/recent_files_2_dark.png b/python/edu/resources/tips/images/recent_files_2_dark.png
new file mode 100644
index 000000000000..99cdf79f99b6
Binary files /dev/null and b/python/edu/resources/tips/images/recent_files_2_dark.png differ
diff --git a/python/edu/resources/tips/images/refactor_this.png b/python/edu/resources/tips/images/refactor_this.png
new file mode 100644
index 000000000000..1a5fc4982ccb
Binary files /dev/null and b/python/edu/resources/tips/images/refactor_this.png differ
diff --git a/python/edu/resources/tips/images/refactor_this@2x.png b/python/edu/resources/tips/images/refactor_this@2x.png
new file mode 100644
index 000000000000..698889b05840
Binary files /dev/null and b/python/edu/resources/tips/images/refactor_this@2x.png differ
diff --git a/python/edu/resources/tips/images/refactor_this@2x_dark.png b/python/edu/resources/tips/images/refactor_this@2x_dark.png
new file mode 100644
index 000000000000..78c122a1da71
Binary files /dev/null and b/python/edu/resources/tips/images/refactor_this@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/refactor_this_dark.png b/python/edu/resources/tips/images/refactor_this_dark.png
new file mode 100644
index 000000000000..a832560c85ae
Binary files /dev/null and b/python/edu/resources/tips/images/refactor_this_dark.png differ
diff --git a/python/edu/resources/tips/images/rename.png b/python/edu/resources/tips/images/rename.png
new file mode 100644
index 000000000000..35d533501f73
Binary files /dev/null and b/python/edu/resources/tips/images/rename.png differ
diff --git a/python/edu/resources/tips/images/rename@2x.png b/python/edu/resources/tips/images/rename@2x.png
new file mode 100644
index 000000000000..26b49a49eb82
Binary files /dev/null and b/python/edu/resources/tips/images/rename@2x.png differ
diff --git a/python/edu/resources/tips/images/rename@2x_dark.png b/python/edu/resources/tips/images/rename@2x_dark.png
new file mode 100644
index 000000000000..7bda59490aa9
Binary files /dev/null and b/python/edu/resources/tips/images/rename@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/rename_dark.png b/python/edu/resources/tips/images/rename_dark.png
new file mode 100644
index 000000000000..c5f96c32554d
Binary files /dev/null and b/python/edu/resources/tips/images/rename_dark.png differ
diff --git a/python/edu/resources/tips/images/reopen.png b/python/edu/resources/tips/images/reopen.png
new file mode 100644
index 000000000000..3cdb2df84786
Binary files /dev/null and b/python/edu/resources/tips/images/reopen.png differ
diff --git a/python/edu/resources/tips/images/reopen@2x.png b/python/edu/resources/tips/images/reopen@2x.png
new file mode 100644
index 000000000000..a0b61f58ea37
Binary files /dev/null and b/python/edu/resources/tips/images/reopen@2x.png differ
diff --git a/python/edu/resources/tips/images/reopen@2x_dark.png b/python/edu/resources/tips/images/reopen@2x_dark.png
new file mode 100644
index 000000000000..ed33d6e49c84
Binary files /dev/null and b/python/edu/resources/tips/images/reopen@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/reopen_dark.png b/python/edu/resources/tips/images/reopen_dark.png
new file mode 100644
index 000000000000..af7ba67c534c
Binary files /dev/null and b/python/edu/resources/tips/images/reopen_dark.png differ
diff --git a/python/edu/resources/tips/images/searchEverywhere.png b/python/edu/resources/tips/images/searchEverywhere.png
new file mode 100644
index 000000000000..639f100b5192
Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere.png differ
diff --git a/python/edu/resources/tips/images/searchEverywhere@2x.png b/python/edu/resources/tips/images/searchEverywhere@2x.png
new file mode 100644
index 000000000000..9ef380cc5b45
Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere@2x.png differ
diff --git a/python/edu/resources/tips/images/searchEverywhere@2x_dark.png b/python/edu/resources/tips/images/searchEverywhere@2x_dark.png
new file mode 100644
index 000000000000..2f6fa5607082
Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/searchEverywhere_dark.png b/python/edu/resources/tips/images/searchEverywhere_dark.png
new file mode 100644
index 000000000000..c71501aa9e67
Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere_dark.png differ
diff --git a/python/edu/resources/tips/images/searchEverywhere_lense.png b/python/edu/resources/tips/images/searchEverywhere_lense.png
new file mode 100644
index 000000000000..d855d22809ba
Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere_lense.png differ
diff --git a/python/edu/resources/tips/images/searchEverywhere_lense@2x.png b/python/edu/resources/tips/images/searchEverywhere_lense@2x.png
new file mode 100644
index 000000000000..5255eca01461
Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere_lense@2x.png differ
diff --git a/python/edu/resources/tips/images/searchEverywhere_lense@2x_dark.png b/python/edu/resources/tips/images/searchEverywhere_lense@2x_dark.png
new file mode 100644
index 000000000000..680c00233e8a
Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere_lense@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/searchEverywhere_lense_dark.png b/python/edu/resources/tips/images/searchEverywhere_lense_dark.png
new file mode 100644
index 000000000000..1157f40e4f8a
Binary files /dev/null and b/python/edu/resources/tips/images/searchEverywhere_lense_dark.png differ
diff --git a/python/edu/resources/tips/images/search_settings.png b/python/edu/resources/tips/images/search_settings.png
new file mode 100644
index 000000000000..31796e24f576
Binary files /dev/null and b/python/edu/resources/tips/images/search_settings.png differ
diff --git a/python/edu/resources/tips/images/search_settings@2x.png b/python/edu/resources/tips/images/search_settings@2x.png
new file mode 100644
index 000000000000..14212d48cd5f
Binary files /dev/null and b/python/edu/resources/tips/images/search_settings@2x.png differ
diff --git a/python/edu/resources/tips/images/search_settings@2x_dark.png b/python/edu/resources/tips/images/search_settings@2x_dark.png
new file mode 100644
index 000000000000..10a33a2676dd
Binary files /dev/null and b/python/edu/resources/tips/images/search_settings@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/search_settings_dark.png b/python/edu/resources/tips/images/search_settings_dark.png
new file mode 100644
index 000000000000..32a05bc600c9
Binary files /dev/null and b/python/edu/resources/tips/images/search_settings_dark.png differ
diff --git a/python/edu/resources/tips/images/select_in.png b/python/edu/resources/tips/images/select_in.png
new file mode 100644
index 000000000000..782ccc2629c1
Binary files /dev/null and b/python/edu/resources/tips/images/select_in.png differ
diff --git a/python/edu/resources/tips/images/select_in@2x.png b/python/edu/resources/tips/images/select_in@2x.png
new file mode 100644
index 000000000000..68aec61d7934
Binary files /dev/null and b/python/edu/resources/tips/images/select_in@2x.png differ
diff --git a/python/edu/resources/tips/images/select_in@2x_dark.png b/python/edu/resources/tips/images/select_in@2x_dark.png
new file mode 100644
index 000000000000..993408d31af3
Binary files /dev/null and b/python/edu/resources/tips/images/select_in@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/select_in_dark.png b/python/edu/resources/tips/images/select_in_dark.png
new file mode 100644
index 000000000000..8ead24652cc9
Binary files /dev/null and b/python/edu/resources/tips/images/select_in_dark.png differ
diff --git a/python/edu/resources/tips/images/select_tasks.png b/python/edu/resources/tips/images/select_tasks.png
new file mode 100644
index 000000000000..1c9aa8993ff3
Binary files /dev/null and b/python/edu/resources/tips/images/select_tasks.png differ
diff --git a/python/edu/resources/tips/images/select_tasks@2x.png b/python/edu/resources/tips/images/select_tasks@2x.png
new file mode 100644
index 000000000000..58a42c001b1d
Binary files /dev/null and b/python/edu/resources/tips/images/select_tasks@2x.png differ
diff --git a/python/edu/resources/tips/images/select_tasks@2x_dark.png b/python/edu/resources/tips/images/select_tasks@2x_dark.png
new file mode 100644
index 000000000000..59272a32576a
Binary files /dev/null and b/python/edu/resources/tips/images/select_tasks@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/select_tasks_dark.png b/python/edu/resources/tips/images/select_tasks_dark.png
new file mode 100644
index 000000000000..7d001529e458
Binary files /dev/null and b/python/edu/resources/tips/images/select_tasks_dark.png differ
diff --git a/python/edu/resources/tips/images/showToolWindows.png b/python/edu/resources/tips/images/showToolWindows.png
new file mode 100644
index 000000000000..2a925b29c213
Binary files /dev/null and b/python/edu/resources/tips/images/showToolWindows.png differ
diff --git a/python/edu/resources/tips/images/showToolWindows@2x.png b/python/edu/resources/tips/images/showToolWindows@2x.png
new file mode 100644
index 000000000000..db1071b866cd
Binary files /dev/null and b/python/edu/resources/tips/images/showToolWindows@2x.png differ
diff --git a/python/edu/resources/tips/images/showToolWindows@2x_dark.png b/python/edu/resources/tips/images/showToolWindows@2x_dark.png
new file mode 100644
index 000000000000..06c387852f1c
Binary files /dev/null and b/python/edu/resources/tips/images/showToolWindows@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/showToolWindows_dark.png b/python/edu/resources/tips/images/showToolWindows_dark.png
new file mode 100644
index 000000000000..471d3b721af3
Binary files /dev/null and b/python/edu/resources/tips/images/showToolWindows_dark.png differ
diff --git a/python/edu/resources/tips/images/showUsages.png b/python/edu/resources/tips/images/showUsages.png
new file mode 100644
index 000000000000..196992b8c639
Binary files /dev/null and b/python/edu/resources/tips/images/showUsages.png differ
diff --git a/python/edu/resources/tips/images/showUsages@2x.png b/python/edu/resources/tips/images/showUsages@2x.png
new file mode 100644
index 000000000000..694a59cb2339
Binary files /dev/null and b/python/edu/resources/tips/images/showUsages@2x.png differ
diff --git a/python/edu/resources/tips/images/showUsages@2x_dark.png b/python/edu/resources/tips/images/showUsages@2x_dark.png
new file mode 100644
index 000000000000..b0abb99e23be
Binary files /dev/null and b/python/edu/resources/tips/images/showUsages@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/showUsages_dark.png b/python/edu/resources/tips/images/showUsages_dark.png
new file mode 100644
index 000000000000..b6ebb3e27c8a
Binary files /dev/null and b/python/edu/resources/tips/images/showUsages_dark.png differ
diff --git a/python/edu/resources/tips/images/show_applied_styles.png b/python/edu/resources/tips/images/show_applied_styles.png
new file mode 100644
index 000000000000..1f6988b933a8
Binary files /dev/null and b/python/edu/resources/tips/images/show_applied_styles.png differ
diff --git a/python/edu/resources/tips/images/show_applied_styles@2x.png b/python/edu/resources/tips/images/show_applied_styles@2x.png
new file mode 100644
index 000000000000..e0720cb54e71
Binary files /dev/null and b/python/edu/resources/tips/images/show_applied_styles@2x.png differ
diff --git a/python/edu/resources/tips/images/show_applied_styles@2x_dark.png b/python/edu/resources/tips/images/show_applied_styles@2x_dark.png
new file mode 100644
index 000000000000..8fa79d6e0ba0
Binary files /dev/null and b/python/edu/resources/tips/images/show_applied_styles@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/show_applied_styles_dark.png b/python/edu/resources/tips/images/show_applied_styles_dark.png
new file mode 100644
index 000000000000..f403cd166cb2
Binary files /dev/null and b/python/edu/resources/tips/images/show_applied_styles_dark.png differ
diff --git a/python/edu/resources/tips/images/show_hide_tool_window_bars.png b/python/edu/resources/tips/images/show_hide_tool_window_bars.png
new file mode 100644
index 000000000000..bf752ceb6d93
Binary files /dev/null and b/python/edu/resources/tips/images/show_hide_tool_window_bars.png differ
diff --git a/python/edu/resources/tips/images/show_hide_tool_window_bars@2x.png b/python/edu/resources/tips/images/show_hide_tool_window_bars@2x.png
new file mode 100644
index 000000000000..994df8775783
Binary files /dev/null and b/python/edu/resources/tips/images/show_hide_tool_window_bars@2x.png differ
diff --git a/python/edu/resources/tips/images/show_hide_tool_window_bars@2x_dark.png b/python/edu/resources/tips/images/show_hide_tool_window_bars@2x_dark.png
new file mode 100644
index 000000000000..822975130fcc
Binary files /dev/null and b/python/edu/resources/tips/images/show_hide_tool_window_bars@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/show_hide_tool_window_bars_dark.png b/python/edu/resources/tips/images/show_hide_tool_window_bars_dark.png
new file mode 100644
index 000000000000..083029cb687e
Binary files /dev/null and b/python/edu/resources/tips/images/show_hide_tool_window_bars_dark.png differ
diff --git a/python/edu/resources/tips/images/sidebyside.png b/python/edu/resources/tips/images/sidebyside.png
new file mode 100644
index 000000000000..8d004bc81c3a
Binary files /dev/null and b/python/edu/resources/tips/images/sidebyside.png differ
diff --git a/python/edu/resources/tips/images/sidebyside@2x.png b/python/edu/resources/tips/images/sidebyside@2x.png
new file mode 100644
index 000000000000..9cf631a6b302
Binary files /dev/null and b/python/edu/resources/tips/images/sidebyside@2x.png differ
diff --git a/python/edu/resources/tips/images/sidebyside@2x_dark.png b/python/edu/resources/tips/images/sidebyside@2x_dark.png
new file mode 100644
index 000000000000..c64e919e14de
Binary files /dev/null and b/python/edu/resources/tips/images/sidebyside@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/sidebyside_dark.png b/python/edu/resources/tips/images/sidebyside_dark.png
new file mode 100644
index 000000000000..c55c6e3ff9a6
Binary files /dev/null and b/python/edu/resources/tips/images/sidebyside_dark.png differ
diff --git a/python/edu/resources/tips/images/speed_search.png b/python/edu/resources/tips/images/speed_search.png
new file mode 100644
index 000000000000..2e58d3300b31
Binary files /dev/null and b/python/edu/resources/tips/images/speed_search.png differ
diff --git a/python/edu/resources/tips/images/speed_search@2x.png b/python/edu/resources/tips/images/speed_search@2x.png
new file mode 100644
index 000000000000..60b5f2e4c87b
Binary files /dev/null and b/python/edu/resources/tips/images/speed_search@2x.png differ
diff --git a/python/edu/resources/tips/images/speed_search@2x_dark.png b/python/edu/resources/tips/images/speed_search@2x_dark.png
new file mode 100644
index 000000000000..112b38107a58
Binary files /dev/null and b/python/edu/resources/tips/images/speed_search@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/speed_search_dark.png b/python/edu/resources/tips/images/speed_search_dark.png
new file mode 100644
index 000000000000..86642ce0e899
Binary files /dev/null and b/python/edu/resources/tips/images/speed_search_dark.png differ
diff --git a/python/edu/resources/tips/images/switcher.png b/python/edu/resources/tips/images/switcher.png
new file mode 100644
index 000000000000..2a4cbcdd1e04
Binary files /dev/null and b/python/edu/resources/tips/images/switcher.png differ
diff --git a/python/edu/resources/tips/images/switcher@2x.png b/python/edu/resources/tips/images/switcher@2x.png
new file mode 100644
index 000000000000..1fb023f79dd0
Binary files /dev/null and b/python/edu/resources/tips/images/switcher@2x.png differ
diff --git a/python/edu/resources/tips/images/switcher@2x_dark.png b/python/edu/resources/tips/images/switcher@2x_dark.png
new file mode 100644
index 000000000000..b36a0e6c0daf
Binary files /dev/null and b/python/edu/resources/tips/images/switcher@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/switcher_dark.png b/python/edu/resources/tips/images/switcher_dark.png
new file mode 100644
index 000000000000..0549a5a147be
Binary files /dev/null and b/python/edu/resources/tips/images/switcher_dark.png differ
diff --git a/python/edu/resources/tips/images/tagNameCompletion.png b/python/edu/resources/tips/images/tagNameCompletion.png
new file mode 100644
index 000000000000..e711aa8c0093
Binary files /dev/null and b/python/edu/resources/tips/images/tagNameCompletion.png differ
diff --git a/python/edu/resources/tips/images/tagNameCompletion@2x.png b/python/edu/resources/tips/images/tagNameCompletion@2x.png
new file mode 100644
index 000000000000..2942719bedb8
Binary files /dev/null and b/python/edu/resources/tips/images/tagNameCompletion@2x.png differ
diff --git a/python/edu/resources/tips/images/tagNameCompletion@2x_dark.png b/python/edu/resources/tips/images/tagNameCompletion@2x_dark.png
new file mode 100644
index 000000000000..71bd316fe677
Binary files /dev/null and b/python/edu/resources/tips/images/tagNameCompletion@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/tagNameCompletion_dark.png b/python/edu/resources/tips/images/tagNameCompletion_dark.png
new file mode 100644
index 000000000000..1e6971d5cb6e
Binary files /dev/null and b/python/edu/resources/tips/images/tagNameCompletion_dark.png differ
diff --git a/python/edu/resources/tips/images/terminal.png b/python/edu/resources/tips/images/terminal.png
new file mode 100644
index 000000000000..f71774350ae8
Binary files /dev/null and b/python/edu/resources/tips/images/terminal.png differ
diff --git a/python/edu/resources/tips/images/terminal@2x.png b/python/edu/resources/tips/images/terminal@2x.png
new file mode 100644
index 000000000000..2d75b4fcb1d5
Binary files /dev/null and b/python/edu/resources/tips/images/terminal@2x.png differ
diff --git a/python/edu/resources/tips/images/terminal@2x_dark.png b/python/edu/resources/tips/images/terminal@2x_dark.png
new file mode 100644
index 000000000000..9cdd82ef538b
Binary files /dev/null and b/python/edu/resources/tips/images/terminal@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/terminal_dark.png b/python/edu/resources/tips/images/terminal_dark.png
new file mode 100644
index 000000000000..54ae051d777b
Binary files /dev/null and b/python/edu/resources/tips/images/terminal_dark.png differ
diff --git a/python/edu/resources/tips/images/todo_preview.png b/python/edu/resources/tips/images/todo_preview.png
new file mode 100644
index 000000000000..8475624cfa8b
Binary files /dev/null and b/python/edu/resources/tips/images/todo_preview.png differ
diff --git a/python/edu/resources/tips/images/todo_preview@2x.png b/python/edu/resources/tips/images/todo_preview@2x.png
new file mode 100644
index 000000000000..9962b2b0e0fc
Binary files /dev/null and b/python/edu/resources/tips/images/todo_preview@2x.png differ
diff --git a/python/edu/resources/tips/images/todo_preview@2x_dark.png b/python/edu/resources/tips/images/todo_preview@2x_dark.png
new file mode 100644
index 000000000000..6caef92066ef
Binary files /dev/null and b/python/edu/resources/tips/images/todo_preview@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/todo_preview_dark.png b/python/edu/resources/tips/images/todo_preview_dark.png
new file mode 100644
index 000000000000..a0c50ebbd9a8
Binary files /dev/null and b/python/edu/resources/tips/images/todo_preview_dark.png differ
diff --git a/python/edu/resources/tips/images/todo_scopes.png b/python/edu/resources/tips/images/todo_scopes.png
new file mode 100644
index 000000000000..8121347bd5c1
Binary files /dev/null and b/python/edu/resources/tips/images/todo_scopes.png differ
diff --git a/python/edu/resources/tips/images/todo_scopes@2x.png b/python/edu/resources/tips/images/todo_scopes@2x.png
new file mode 100644
index 000000000000..e395360dd5e8
Binary files /dev/null and b/python/edu/resources/tips/images/todo_scopes@2x.png differ
diff --git a/python/edu/resources/tips/images/todo_scopes@2x_dark.png b/python/edu/resources/tips/images/todo_scopes@2x_dark.png
new file mode 100644
index 000000000000..ec8a30107d12
Binary files /dev/null and b/python/edu/resources/tips/images/todo_scopes@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/todo_scopes_dark.png b/python/edu/resources/tips/images/todo_scopes_dark.png
new file mode 100644
index 000000000000..2a2a056f756d
Binary files /dev/null and b/python/edu/resources/tips/images/todo_scopes_dark.png differ
diff --git a/python/edu/resources/tips/images/try_except.png b/python/edu/resources/tips/images/try_except.png
new file mode 100644
index 000000000000..918275f1b883
Binary files /dev/null and b/python/edu/resources/tips/images/try_except.png differ
diff --git a/python/edu/resources/tips/images/try_except@2x.png b/python/edu/resources/tips/images/try_except@2x.png
new file mode 100644
index 000000000000..6336bbcb3f62
Binary files /dev/null and b/python/edu/resources/tips/images/try_except@2x.png differ
diff --git a/python/edu/resources/tips/images/try_except@2x_dark.png b/python/edu/resources/tips/images/try_except@2x_dark.png
new file mode 100644
index 000000000000..32f100a97b39
Binary files /dev/null and b/python/edu/resources/tips/images/try_except@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/try_except_dark.png b/python/edu/resources/tips/images/try_except_dark.png
new file mode 100644
index 000000000000..5c12670caaf5
Binary files /dev/null and b/python/edu/resources/tips/images/try_except_dark.png differ
diff --git a/python/edu/resources/tips/images/vcsQuickList.png b/python/edu/resources/tips/images/vcsQuickList.png
new file mode 100644
index 000000000000..61209a6428fd
Binary files /dev/null and b/python/edu/resources/tips/images/vcsQuickList.png differ
diff --git a/python/edu/resources/tips/images/vcsQuickList@2x.png b/python/edu/resources/tips/images/vcsQuickList@2x.png
new file mode 100644
index 000000000000..e4735101dc8a
Binary files /dev/null and b/python/edu/resources/tips/images/vcsQuickList@2x.png differ
diff --git a/python/edu/resources/tips/images/vcsQuickList@2x_dark.png b/python/edu/resources/tips/images/vcsQuickList@2x_dark.png
new file mode 100644
index 000000000000..074919081f65
Binary files /dev/null and b/python/edu/resources/tips/images/vcsQuickList@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/vcsQuickList_dark.png b/python/edu/resources/tips/images/vcsQuickList_dark.png
new file mode 100644
index 000000000000..0c8cbe495068
Binary files /dev/null and b/python/edu/resources/tips/images/vcsQuickList_dark.png differ
diff --git a/python/edu/resources/tips/images/wildcard_goto.png b/python/edu/resources/tips/images/wildcard_goto.png
new file mode 100644
index 000000000000..3486682a805d
Binary files /dev/null and b/python/edu/resources/tips/images/wildcard_goto.png differ
diff --git a/python/edu/resources/tips/images/wildcard_goto@2x.png b/python/edu/resources/tips/images/wildcard_goto@2x.png
new file mode 100644
index 000000000000..557f5b22be48
Binary files /dev/null and b/python/edu/resources/tips/images/wildcard_goto@2x.png differ
diff --git a/python/edu/resources/tips/images/wildcard_goto@2x_dark.png b/python/edu/resources/tips/images/wildcard_goto@2x_dark.png
new file mode 100644
index 000000000000..06d01e57548b
Binary files /dev/null and b/python/edu/resources/tips/images/wildcard_goto@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/wildcard_goto_dark.png b/python/edu/resources/tips/images/wildcard_goto_dark.png
new file mode 100644
index 000000000000..1f7340e1691f
Binary files /dev/null and b/python/edu/resources/tips/images/wildcard_goto_dark.png differ
diff --git a/python/edu/resources/tips/images/word_completion.png b/python/edu/resources/tips/images/word_completion.png
new file mode 100644
index 000000000000..ae32b93e7030
Binary files /dev/null and b/python/edu/resources/tips/images/word_completion.png differ
diff --git a/python/edu/resources/tips/images/word_completion@2x.png b/python/edu/resources/tips/images/word_completion@2x.png
new file mode 100644
index 000000000000..2bfed89e18b6
Binary files /dev/null and b/python/edu/resources/tips/images/word_completion@2x.png differ
diff --git a/python/edu/resources/tips/images/word_completion@2x_dark.png b/python/edu/resources/tips/images/word_completion@2x_dark.png
new file mode 100644
index 000000000000..bcdc5582f8e0
Binary files /dev/null and b/python/edu/resources/tips/images/word_completion@2x_dark.png differ
diff --git a/python/edu/resources/tips/images/word_completion_dark.png b/python/edu/resources/tips/images/word_completion_dark.png
new file mode 100644
index 000000000000..199bcfbd3d6f
Binary files /dev/null and b/python/edu/resources/tips/images/word_completion_dark.png differ
diff --git a/python/edu/resources/tips/moveFileToChangelist.html b/python/edu/resources/tips/moveFileToChangelist.html
new file mode 100644
index 000000000000..7ec305ed0a19
--- /dev/null
+++ b/python/edu/resources/tips/moveFileToChangelist.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+You can move any file to a changelist of your choice. To do that, just choose
+Move to Changelist on the file context menu in the Changes tool window:
+