PyCharm Educational Edition
|
After Width: | Height: | Size: 20 KiB |
@@ -0,0 +1,6 @@
|
||||
; Installer images
|
||||
!define IMAGES_LOCATION ${COMMUNITY_DIR}\python\build\resources
|
||||
;!define LICENSE_FILE ${BASE_DIR}\python\license\PyCharm_Preview_License
|
||||
!define PRODUCT_PROPERTIES_FILE ${BASE_DIR}\out\pycharmEDU\layout\bin\idea.properties
|
||||
!define PRODUCT_VM_OPTIONS_NAME pycharm.exe.vmoptions
|
||||
!define PRODUCT_VM_OPTIONS_FILE ${BASE_DIR}\out\pycharmEDU\win\bin\${PRODUCT_VM_OPTIONS_NAME}
|
||||
@@ -0,0 +1,11 @@
|
||||
svn4idea
|
||||
git4idea
|
||||
remote-servers-git
|
||||
github
|
||||
terminal
|
||||
IntelliLang
|
||||
IntelliLang-xml
|
||||
IntelliLang-js
|
||||
IntelliLang-python
|
||||
rest
|
||||
python-rest
|
||||
@@ -0,0 +1,392 @@
|
||||
/*
|
||||
* Copyright 2000-2014 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.
|
||||
*/
|
||||
import org.jetbrains.jps.LayoutInfo
|
||||
|
||||
import static org.jetbrains.jps.idea.IdeaProjectLoader.guessHome
|
||||
|
||||
setProperty("home", guessHome(this as Script))
|
||||
|
||||
includeTargets << new File("${guessHome(this as Script)}/build/scripts/utils.gant")
|
||||
includeTargets << new File("${guessHome(this)}/build/scripts/libLicenses.gant")
|
||||
|
||||
requireProperty("buildNumber", requireProperty("build.number", snapshot))
|
||||
|
||||
setProperty("ch", home)
|
||||
setProperty("pythonCommunityHome", "$home/python")
|
||||
setProperty("pythonEduHome", "$home/python/edu")
|
||||
|
||||
// load ApplicationInfo.xml properties
|
||||
ant.xmlproperty(file: "$pythonCommunityHome/resources/idea/PyCharmEduApplicationInfo.xml", collapseAttributes: "true")
|
||||
|
||||
setProperty("system_selector", "PyCharm${p("component.version.major")}0")
|
||||
setProperty("dryRun", false)
|
||||
setProperty("jdk16", guessJdk())
|
||||
|
||||
//modules to compile
|
||||
setProperty("pluginFilter", new File("$pythonEduHome/build/plugin-list.txt").readLines())
|
||||
|
||||
private List<String> pycharmPlatformApiModules() {
|
||||
return [platformApiModules, "dom-openapi"].flatten()
|
||||
}
|
||||
|
||||
|
||||
private List pycharmImplementationModules() { //modules to put into pycharm.jar
|
||||
return [platformImplementationModules, "dom-impl", "python-community", "python-ide-community", "python-openapi", "python-psi-api",
|
||||
"platform-main", "python-educational"].flatten()
|
||||
}
|
||||
|
||||
private List modules() {
|
||||
return [
|
||||
"python-pydev", "colorSchemes", pycharmPlatformApiModules(), pycharmImplementationModules(), pluginFilter
|
||||
].flatten()
|
||||
}
|
||||
|
||||
private List approvedJars() {
|
||||
def normalizedHome = ch.replace('\\', '/')
|
||||
def normalizedPythonHome = pythonCommunityHome.replace('\\', '/')
|
||||
return ["$normalizedHome/lib/", "$normalizedPythonHome/lib/", "$normalizedHome/xml/relaxng/lib/"]
|
||||
}
|
||||
|
||||
class Paths {
|
||||
final sandbox
|
||||
final distAll
|
||||
final distWin
|
||||
final distMac
|
||||
final distUnix
|
||||
final artifacts
|
||||
final ideaSystem
|
||||
final ideaConfig
|
||||
|
||||
def Paths(String home) {
|
||||
sandbox = "$home/out/pycharmEDU"
|
||||
|
||||
distAll = "$sandbox/layout"
|
||||
distWin = "$sandbox/win"
|
||||
distMac = "$sandbox/mac"
|
||||
distUnix = "$sandbox/unix"
|
||||
artifacts = "$sandbox/artifacts"
|
||||
|
||||
ideaSystem = "$sandbox/system"
|
||||
ideaConfig = "$sandbox/config"
|
||||
}
|
||||
}
|
||||
|
||||
setProperty("paths", new Paths(home))
|
||||
setProperty("buildName", "PE-$buildNumber")
|
||||
|
||||
target('default': "Build artifacts") {
|
||||
|
||||
loadProject()
|
||||
|
||||
projectBuilder.stage("Cleaning up sandbox folder")
|
||||
|
||||
projectBuilder.targetFolder = "${paths.sandbox}/classes"
|
||||
projectBuilder.dryRun = dryRun
|
||||
|
||||
if (!dryRun) {
|
||||
forceDelete(paths.sandbox)
|
||||
ant.mkdir(dir: paths.sandbox)
|
||||
}
|
||||
|
||||
ant.tstamp() {
|
||||
format(property: "todayYear", pattern: "yyyy")
|
||||
}
|
||||
|
||||
ant.patternset(id: "resources.included") {
|
||||
include(name: "**/*.properties")
|
||||
include(name: "fileTemplates/**/*")
|
||||
include(name: "inspectionDescriptions/**/*")
|
||||
include(name: "intentionDescriptions/**/*")
|
||||
include(name: "tips/**/*")
|
||||
include(name: "search/**/*")
|
||||
}
|
||||
|
||||
ant.patternset(id: "resources.excluded") {
|
||||
exclude(name: "**/*.properties")
|
||||
exclude(name: "fileTemplates/**/*")
|
||||
exclude(name: "fileTemplates")
|
||||
exclude(name: "inspectionDescriptions/**/*")
|
||||
exclude(name: "inspectionDescriptions")
|
||||
exclude(name: "intentionDescriptions/**/*")
|
||||
exclude(name: "intentionDescriptions")
|
||||
exclude(name: "tips/**/*")
|
||||
exclude(name: "tips")
|
||||
}
|
||||
|
||||
zipSources(home, paths.artifacts)
|
||||
|
||||
def usedJars = buildModulesAndCollectUsedJars(modules(), approvedJars(), ["/ant/"])
|
||||
|
||||
layoutEducational("${paths.sandbox}/classes/production", usedJars)
|
||||
|
||||
/*
|
||||
buildNSIS([paths.distAll, paths.distWin],
|
||||
"$home/python/build/strings.nsi", "$home/python/build/paths.nsi",
|
||||
"pycharm", false, true, system_selector)
|
||||
*/
|
||||
|
||||
/*
|
||||
signMacZip("pycharm")
|
||||
buildDmg("pycharm", "${home}/python/build/DMG_background.png")
|
||||
*/
|
||||
}
|
||||
|
||||
public layoutEducational(String classesPath, Set usedJars) {
|
||||
setProperty("pluginFilter", new File("$pythonEduHome/build/plugin-list.txt").readLines())
|
||||
|
||||
if (usedJars == null) {
|
||||
usedJars = collectUsedJars(modules(), approvedJars(), ["/ant/"], null)
|
||||
}
|
||||
|
||||
def appInfo = appInfoFile(classesPath)
|
||||
def paths = new Paths(home)
|
||||
buildSearchableOptions("${projectBuilder.moduleOutput(findModule("platform-resources"))}/search", [], {
|
||||
projectBuilder.moduleRuntimeClasspath(findModule("main_pycharm_edu"), false).each {
|
||||
ant.pathelement(location: it)
|
||||
}
|
||||
}, "-Didea.platform.prefix=PyCharmEdu -Didea.no.jre.check=true")
|
||||
|
||||
if (!dryRun) {
|
||||
wireBuildDate("PE-${buildNumber}", appInfo)
|
||||
}
|
||||
|
||||
Map args = [
|
||||
buildNumber: "PE-${buildNumber}",
|
||||
system_selector: system_selector,
|
||||
ide_jvm_args: "-Didea.platform.prefix=PyCharmEdu -Didea.no.jre.check=true"]
|
||||
|
||||
LayoutInfo layoutInfo = layoutFull(args, paths.distAll, usedJars)
|
||||
generateLicensesTable("$paths.artifacts/third-party-libraries.txt", layoutInfo.usedModules);
|
||||
|
||||
layoutWin(args, paths.distWin)
|
||||
layoutUnix(args, paths.distUnix)
|
||||
layoutMac(args, paths.distMac)
|
||||
|
||||
ant.echo(message: "PE-${buildNumber}", file: "${paths.distAll}/build.txt")
|
||||
|
||||
def launcher = "${paths.distWin}/bin/pycharm.exe"
|
||||
List resourcePaths = ["$ch/community-resources/src",
|
||||
"$ch/platform/icons/src",
|
||||
"$pythonEduHome/resources"]
|
||||
buildWinLauncher("$ch", "$ch/bin/WinLauncher/WinLauncher.exe", launcher,
|
||||
appInfo, "$pythonCommunityHome/build/pycharm_edu_launcher.properties", system_selector, resourcePaths)
|
||||
|
||||
buildWinZip("${paths.artifacts}/pycharmPE-${buildNumber}.zip", [paths.distAll, paths.distWin])
|
||||
|
||||
String tarRoot = isEap() ? "pycharm-edu-$buildNumber" : "pycharm-edu-${p("component.version.major")}.${p("component.version.minor")}"
|
||||
buildTarGz(tarRoot, "$paths.artifacts/pycharmPE-${buildNumber}.tar", [paths.distAll, paths.distUnix])
|
||||
|
||||
String macAppRoot = isEap() ? "PyCharm EDU ${p("component.version.major")}.${p("component.version.minor")} EAP.app/Contents" : "PyCharm EDU.app/Contents"
|
||||
buildMacZip(macAppRoot, "${paths.artifacts}/pycharmEDU-${buildNumber}.sit", [paths.distAll], paths.distMac)
|
||||
}
|
||||
|
||||
private layoutPlugins(layouts) {
|
||||
dir("plugins") {
|
||||
layouts.layoutPlugin("rest")
|
||||
layouts.layoutPlugin("python-rest")
|
||||
}
|
||||
|
||||
layouts.layoutEducationalPlugins(ch)
|
||||
}
|
||||
|
||||
private String appInfoFile(String classesPath) {
|
||||
return "$classesPath/python-community/idea/PyCharmEduApplicationInfo.xml"
|
||||
}
|
||||
|
||||
private layoutFull(Map args, String target, Set usedJars) {
|
||||
def openapiModules = pycharmPlatformApiModules()
|
||||
def superLayouts = includeFile("$ch/build/scripts/layouts.gant")
|
||||
|
||||
reassignAltClickToMultipleCarets("$ch")
|
||||
|
||||
def result = layout(target) {
|
||||
dir("lib") {
|
||||
jar("util.jar") {
|
||||
module("util")
|
||||
module("util-rt")
|
||||
}
|
||||
|
||||
jar("openapi.jar") {
|
||||
openapiModules.each { module it }
|
||||
}
|
||||
|
||||
jar("annotations.jar") { module("annotations") }
|
||||
jar("extensions.jar") { module("extensions") }
|
||||
|
||||
jar("pycharm.jar") {
|
||||
pycharmImplementationModules().each {
|
||||
module(it) {
|
||||
exclude(name: "**/tips/**")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
jar("pycharm-pydev.jar") {
|
||||
module("python-pydev")
|
||||
}
|
||||
|
||||
jar("bootstrap.jar") { module("bootstrap") }
|
||||
jar("resources.jar") {
|
||||
module("platform-resources")
|
||||
module("colorSchemes")
|
||||
}
|
||||
|
||||
jar("forms_rt.jar") {
|
||||
module("forms_rt")
|
||||
}
|
||||
|
||||
//noinspection GroovyAssignabilityCheck
|
||||
jar([name: "resources_en.jar", duplicate: "preserve"]) {
|
||||
// custom resources should go first
|
||||
fileset(dir: "$pythonCommunityHome/resources") {
|
||||
include(name: "**/tips/**")
|
||||
}
|
||||
module("platform-resources-en") {
|
||||
ant.patternset {
|
||||
exclude(name: "tips/images/switcher.png")
|
||||
exclude(name: "tips/images/navigateToFilePath.gif")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
jar("icons.jar") { module("icons") }
|
||||
jar("boot.jar") { module("boot") }
|
||||
|
||||
usedJars.each {
|
||||
fileset(file: it)
|
||||
}
|
||||
|
||||
dir("libpty") {
|
||||
fileset(dir: "$ch/lib/libpty") {
|
||||
exclude(name: "*.txt")
|
||||
}
|
||||
}
|
||||
|
||||
dir("ext") {
|
||||
fileset(dir: "$ch/lib") {
|
||||
include(name: "cglib*.jar")
|
||||
}
|
||||
}
|
||||
|
||||
dir("src") {
|
||||
fileset(dir: "$ch/lib/src") {
|
||||
include(name: "trove4j_changes.txt")
|
||||
include(name: "trove4j_src.jar")
|
||||
}
|
||||
|
||||
jar("pycharm-pydev-src.zip") {
|
||||
fileset(dir: "$pythonCommunityHome/pydevSrc")
|
||||
}
|
||||
jar("pycharm-openapi-src.zip") {
|
||||
fileset(dir: "$pythonCommunityHome/openapi/src")
|
||||
fileset(dir: "$pythonCommunityHome/psi-api/src")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dir("help") {
|
||||
fileset(dir: "$home/python/help") {
|
||||
include(name: "*.pdf")
|
||||
}
|
||||
}
|
||||
|
||||
dir("helpers") {
|
||||
fileset(dir: "$pythonCommunityHome/helpers")
|
||||
}
|
||||
|
||||
dir("license") {
|
||||
fileset(dir: "$ch/license")
|
||||
fileset(dir: "$ch") {
|
||||
include(name: "LICENSE.txt")
|
||||
include(name: "NOTICE.txt")
|
||||
}
|
||||
}
|
||||
|
||||
layoutPlugins(superLayouts)
|
||||
|
||||
dir("bin") {
|
||||
fileset(dir: "$ch/bin") {
|
||||
exclude(name: "appletviewer.policy")
|
||||
include(name: "*.*")
|
||||
}
|
||||
}
|
||||
}
|
||||
patchPropertiesFile(target, args + [appendices: ["$home/build/conf/ideaJNC.properties"]])
|
||||
return result
|
||||
}
|
||||
|
||||
private layoutWin(Map args, String target) {
|
||||
layout(target) {
|
||||
dir("bin") {
|
||||
fileset(dir: "$ch/bin/win") {
|
||||
exclude(name: "breakgen*")
|
||||
}
|
||||
}
|
||||
|
||||
dir("skeletons") {
|
||||
fileset(dir: "$pythonCommunityHome/skeletons") {
|
||||
include(name: "skeletons-win*.zip")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
winScripts(target, ch, "pycharm.bat", args)
|
||||
winVMOptions(target, null, "pycharm.exe")
|
||||
|
||||
ant.copy(file: "$home/python/help/pycharmhelp.jar", todir: "$target/help", failonerror: false)
|
||||
}
|
||||
|
||||
private layoutUnix(Map args, String target) {
|
||||
layout(target) {
|
||||
dir("bin") {
|
||||
fileset(dir: "$ch/bin/linux") {
|
||||
exclude(name: "libbreakgen*")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ant.copy(file: "$pythonCommunityHome/resources/PyCharmCore128.png", tofile: "$target/bin/pycharm.png")
|
||||
|
||||
unixScripts(target, ch, "pycharm.sh", args)
|
||||
unixVMOptions(target, "pycharm")
|
||||
|
||||
ant.copy(file: "$home/python/help/pycharmhelp.jar", todir: "$target/help", failonerror: false)
|
||||
}
|
||||
|
||||
private layoutMac(Map _args, String target) {
|
||||
layout(target) {
|
||||
dir("bin") {
|
||||
fileset(dir: "$home/bin") {
|
||||
include(name: "*.jnilib")
|
||||
}
|
||||
}
|
||||
|
||||
dir("skeletons") {
|
||||
fileset(dir: "$pythonCommunityHome/skeletons") {
|
||||
include(name: "skeletons-mac*.zip")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Map args = new HashMap(_args)
|
||||
args.icns = "$pythonCommunityHome/resources/PyCharmCore.icns"
|
||||
args.bundleIdentifier = "com.jetbrains.pycharm"
|
||||
args.platform_prefix = "PyCharmEdu"
|
||||
args.help_id = "PY"
|
||||
args."idea.properties.path" = "${paths.distAll}/bin/idea.properties"
|
||||
args."idea.properties" = ["idea.no.jre.check": true, "ide.mac.useNativeClipboard": "false"];
|
||||
layoutMacApp(target, ch, args)
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
IDS_JDK_ENV_VAR=PYCHARM_JDK
|
||||
IDS_JDK_ONLY=false
|
||||
IDS_VM_OPTIONS=-Didea.platform.prefix=PyCharmEdu -Didea.no.jre.check=true -Didea.paths.selector=__PRODUCT_PATHS_SELECTOR__
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="Groovy" level="project" />
|
||||
<orderEntry type="module" module-name="jps-standalone-builder" />
|
||||
</component>
|
||||
</module>
|
||||
|
||||
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 151 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 26 KiB |
@@ -0,0 +1,13 @@
|
||||
!define MANUFACTURER "JetBrains"
|
||||
!define MUI_PRODUCT "PyCharm Educational Edition"
|
||||
!define PRODUCT_FULL_NAME "JetBrains PyCharm Educational Edition"
|
||||
!define PRODUCT_EXE_FILE "pycharm.exe"
|
||||
!define PRODUCT_ICON_FILE "PC_instCom.ico"
|
||||
!define PRODUCT_UNINST_ICON_FILE "PC_uninstCom.ico"
|
||||
!define PRODUCT_LOGO_FILE "logo.bmp"
|
||||
!define PRODUCT_HEADER_FILE "headerlogo.bmp"
|
||||
|
||||
; if SHOULD_SET_DEFAULT_INSTDIR != 0 then default installation directory will be directory where highest-numbered PyCharm build has been installed
|
||||
; set to 1 for release build
|
||||
!define SHOULD_SET_DEFAULT_INSTDIR "0"
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module" module-name="bootstrap" />
|
||||
<orderEntry type="module" module-name="colorSchemes" />
|
||||
<orderEntry type="module" module-name="svn4idea" />
|
||||
<orderEntry type="module" module-name="git4idea" />
|
||||
<orderEntry type="module" module-name="relaxng" />
|
||||
<orderEntry type="module" module-name="github" />
|
||||
<orderEntry type="module" module-name="rest" />
|
||||
<orderEntry type="module" module-name="python-helpers" />
|
||||
<orderEntry type="module" module-name="terminal" />
|
||||
<orderEntry type="module" module-name="python-ide-community" />
|
||||
<orderEntry type="module" module-name="platform-main" />
|
||||
<orderEntry type="module" module-name="ShortcutPromoter" />
|
||||
<orderEntry type="module" module-name="python-educational" />
|
||||
</component>
|
||||
</module>
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module" module-name="python-openapi" exported="" />
|
||||
<orderEntry type="module" module-name="platform-impl" />
|
||||
<orderEntry type="module" module-name="lang-impl" />
|
||||
<orderEntry type="library" name="Guava" level="project" />
|
||||
<orderEntry type="module" module-name="python-pydev" />
|
||||
<orderEntry type="library" exported="" name="XmlRPC" level="project" />
|
||||
<orderEntry type="module" module-name="xdebugger-api" />
|
||||
<orderEntry type="library" name="http-client-3.1" level="project" />
|
||||
<orderEntry type="module" module-name="RegExpSupport" exported="" />
|
||||
<orderEntry type="module" module-name="testRunner" />
|
||||
<orderEntry type="module" module-name="smRunner" />
|
||||
<orderEntry type="module" module-name="spellchecker" />
|
||||
<orderEntry type="module" module-name="xdebugger-impl" />
|
||||
<orderEntry type="module" module-name="xml-psi-impl" />
|
||||
<orderEntry type="module" module-name="python-community" />
|
||||
</component>
|
||||
</module>
|
||||
|
||||
@@ -0,0 +1,293 @@
|
||||
<component>
|
||||
<group id="navigation">
|
||||
<feature
|
||||
id="navigation.popup.class"
|
||||
tip-file="GoToClass.html"
|
||||
min-usage-count="3"
|
||||
first-show="1"
|
||||
successive-show="5"/>
|
||||
<feature
|
||||
id="navigation.popup.file"
|
||||
tip-file="GoToClass.html"
|
||||
min-usage-count="2"
|
||||
first-show="3"
|
||||
successive-show="5"/>
|
||||
<feature
|
||||
id="navigation.popup.symbol"
|
||||
tip-file="GoToSymbol.html"
|
||||
first-show="5"
|
||||
successive-show="8"/>
|
||||
<feature
|
||||
id="SearchEverywhere"
|
||||
tip-file="SearchEverywhere.html"
|
||||
first-show="1"
|
||||
successive-show="1"
|
||||
min-usage-count="1"
|
||||
/>
|
||||
<feature
|
||||
id="navigation.popup.camelprefix"
|
||||
tip-file="CamelPrefixesInNavigationPopups.html"
|
||||
min-usage-count="3"
|
||||
first-show="4"
|
||||
successive-show="7">
|
||||
<dependency id="navigation.popup.class"/>
|
||||
<dependency id="navigation.popup.file"/>
|
||||
<dependency id="navigation.popup.symbol"/>
|
||||
</feature>
|
||||
<feature
|
||||
id="navigation.popup.wildcards"
|
||||
tip-file="WildcardsInNavigationPopups.html"
|
||||
min-usage-count="2"
|
||||
first-show="3"
|
||||
successive-show="5">
|
||||
<dependency id="navigation.popup.class"/>
|
||||
<dependency id="navigation.popup.file"/>
|
||||
<dependency id="navigation.popup.symbol"/>
|
||||
</feature>
|
||||
<feature
|
||||
id="navigation.popup.file.structure"
|
||||
tip-file="FileStructurePopup.html"
|
||||
min-usage-count="3"
|
||||
first-show="2"
|
||||
successive-show="5"
|
||||
/>
|
||||
<feature
|
||||
id="navigation.recent.files"
|
||||
tip-file="RecentFiles.html"
|
||||
min-usage-count="3"
|
||||
first-show="3"
|
||||
successive-show="5"
|
||||
/>
|
||||
<feature
|
||||
id="navigation.select.in"
|
||||
tip-file="SelectIn.html"
|
||||
min-usage-count="3"
|
||||
first-show="4"
|
||||
successive-show="7"
|
||||
/>
|
||||
<feature
|
||||
id="navigation.goto.declaration"
|
||||
tip-file="GoToDeclaration.html"
|
||||
min-usage-count="15"
|
||||
first-show="1"
|
||||
successive-show="4"
|
||||
/>
|
||||
<feature
|
||||
id="navigation.goto.usages"
|
||||
tip-file="ShowUsages.html"
|
||||
min-usage-count="3"
|
||||
first-show="5"
|
||||
successive-show="5"/>
|
||||
</group>
|
||||
|
||||
<group id="completion">
|
||||
<feature
|
||||
id="editing.completion.basic"
|
||||
tip-file="CodeCompletion.html"
|
||||
min-usage-count="15"
|
||||
first-show="1"
|
||||
successive-show="3"/>
|
||||
<feature
|
||||
id="editing.completion.replace"
|
||||
tip-file="TabInLookups.html"
|
||||
min-usage-count="10"
|
||||
first-show="6"
|
||||
successive-show="8"
|
||||
/>
|
||||
<feature
|
||||
id="editing.completion.finishByCtrlDot"
|
||||
tip-file="CtrlDotInLookups.html"
|
||||
min-usage-count="7"
|
||||
first-show="4"
|
||||
successive-show="8"
|
||||
/>
|
||||
<feature
|
||||
id="editing.completion.finishByDotEtc"
|
||||
tip-file="DotEtcInLookups.html"
|
||||
min-usage-count="7"
|
||||
first-show="4"
|
||||
successive-show="8"
|
||||
/>
|
||||
<feature
|
||||
id="editing.completion.camelHumps"
|
||||
tip-file="CamelHumpsInCodeCompletion.html"
|
||||
min-usage-count="8"
|
||||
first-show="5"
|
||||
successive-show="7"
|
||||
/>
|
||||
<feature
|
||||
id="editing.completion.cancelByControlArrows"
|
||||
tip-file="CancelByControlArrows.html"
|
||||
min-usage-count="10"
|
||||
first-show="2"
|
||||
successive-show="3"/>
|
||||
<feature
|
||||
id="editing.completion.changeSorting"
|
||||
tip-file="ChangeSorting.html"
|
||||
min-usage-count="10"
|
||||
first-show="2"
|
||||
successive-show="3"/>
|
||||
</group>
|
||||
|
||||
<group id="editing">
|
||||
<feature
|
||||
id="editing.select.word"
|
||||
tip-file="CtrlW.html"
|
||||
min-usage-count="10"
|
||||
first-show="2"
|
||||
successive-show="4"/>
|
||||
</group>
|
||||
|
||||
<group id="codeassists">
|
||||
<feature
|
||||
id="codeassists.quickjavadoc"
|
||||
tip-file="QuickJavaDoc.html"
|
||||
min-usage-count="3"
|
||||
first-show="3"
|
||||
successive-show="5"
|
||||
/>
|
||||
<feature
|
||||
id="codeassists.quickdefinition"
|
||||
tip-file="CtrlShiftI.html"
|
||||
min-usage-count="9"
|
||||
first-show="3"
|
||||
successive-show="5"
|
||||
/>
|
||||
<feature
|
||||
id="codeassists.quickdefinition.lookup"
|
||||
tip-file="CtrlShiftIForLookup.html"
|
||||
min-usage-count="1"
|
||||
first-show="5"
|
||||
successive-show="7">
|
||||
<dependency id="codeassists.quickdefinition"/>
|
||||
</feature>
|
||||
<feature
|
||||
id="codeassists.quickjavadoc.lookup"
|
||||
tip-file="QuickJavaDocInLookups.html"
|
||||
min-usage-count="1"
|
||||
first-show="5"
|
||||
successive-show="7">
|
||||
<dependency id="codeassists.quickjavadoc"/>
|
||||
</feature>
|
||||
<feature
|
||||
id="codeassists.quickjavadoc.ctrln"
|
||||
tip-file="QuickJavaDocInLookups.html"
|
||||
min-usage-count="1"
|
||||
first-show="5"
|
||||
successive-show="7">
|
||||
<dependency id="codeassists.quickjavadoc"/>
|
||||
</feature>
|
||||
<feature
|
||||
id="codeassists.surroundwith.statement"
|
||||
tip-file="Surround.html"
|
||||
first-show="5"
|
||||
successive-show="5"
|
||||
min-usage-count="4"
|
||||
/>
|
||||
<!--
|
||||
<feature
|
||||
id="codeassists.surroundwith.expression"
|
||||
tip-file="Surround.html"
|
||||
first-show="6"
|
||||
successive-show="5"
|
||||
min-usage-count="3"
|
||||
/>
|
||||
<feature
|
||||
id="codeassists.comment.block"
|
||||
tip-file="CommentCode.html"
|
||||
first-show="6"
|
||||
successive-show="5"
|
||||
min-usage-count="3"
|
||||
/>
|
||||
-->
|
||||
<feature
|
||||
id="codeassists.comment.line"
|
||||
tip-file="Comment.html"
|
||||
first-show="6"
|
||||
successive-show="5"
|
||||
min-usage-count="3"
|
||||
/>
|
||||
</group>
|
||||
|
||||
<group id="refactoring">
|
||||
<feature
|
||||
id="refactoring.introduceVariable"
|
||||
tip-file="IntroduceVariable.html"
|
||||
min-usage-count="5"
|
||||
first-show="1"
|
||||
successive-show="3"
|
||||
/>
|
||||
|
||||
<feature
|
||||
id="refactoring.rename"
|
||||
tip-file="Rename.html"
|
||||
min-usage-count="2"
|
||||
first-show="1"
|
||||
successive-show="3"
|
||||
/>
|
||||
|
||||
</group>
|
||||
|
||||
|
||||
<group id="ui">
|
||||
<feature
|
||||
id="ui.tree.speedsearch"
|
||||
tip-file="SpeedSearch.html"
|
||||
first-show="5"
|
||||
successive-show="4"
|
||||
min-usage-count="6"
|
||||
/>
|
||||
<feature
|
||||
id="ui.scheme.quickswitch"
|
||||
tip-file="QuickSwitchScheme.html"
|
||||
first-show="7"
|
||||
successive-show="3"
|
||||
min-usage-count="1"
|
||||
/>
|
||||
<feature
|
||||
id="ui.recentchanges"
|
||||
tip-file="RecentChanges.html"
|
||||
first-show="5"
|
||||
successive-show="5"
|
||||
min-usage-count="1"
|
||||
/>
|
||||
<feature
|
||||
id="ui.horizontal.scrolling"
|
||||
tip-file="HorizontalScrolling.html"
|
||||
first-show="1"
|
||||
successive-show="1"
|
||||
min-usage-count="1"
|
||||
/>
|
||||
<!-- TODO: Uncomment usage in InsertPathAction when FeatureUsageTracker goes to OpenApi
|
||||
<feature
|
||||
id="ui.commandLine.insertPath"
|
||||
name="Insert path in command line"
|
||||
tip-file="InsertPathShortcut.html"
|
||||
first-show="6"
|
||||
successive-show="5"
|
||||
min-usage-count="3"
|
||||
/>
|
||||
-->
|
||||
<feature id="navigation.popup.action"
|
||||
tip-file="GoToAction.html"
|
||||
first-show="7"
|
||||
successive-show="3"
|
||||
min-usage-count="1"/>
|
||||
<feature
|
||||
id="navigation.goto.inspection"
|
||||
tip-file="GoToInspection.html"
|
||||
min-usage-count="3"
|
||||
first-show="5"
|
||||
successive-show="5"/>
|
||||
<feature id="find.recent.search"
|
||||
tip-file="RecentSearch.html"
|
||||
first-show="10"
|
||||
successive-show="3"
|
||||
min-usage-count="5"/>
|
||||
<feature id="find.completion"
|
||||
tip-file="CodeCompletionInSearch.html"
|
||||
first-show="10"
|
||||
successive-show="3"
|
||||
min-usage-count="5"/>
|
||||
</group>
|
||||
</component>
|
||||
|
After Width: | Height: | Size: 347 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 640 B |
|
After Width: | Height: | Size: 811 B |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,68 @@
|
||||
<?xml version='1.0'?>
|
||||
<list>
|
||||
<option name="MAKO.SUBSTITUTION">
|
||||
<value>
|
||||
<option name="BACKGROUND" value="232364" />
|
||||
<option name="EFFECT_TYPE" value="-1" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="MAKO.TAG">
|
||||
<value>
|
||||
<option name="EFFECT_TYPE" value="-1" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.CLASS_DEFINITION">
|
||||
<value>
|
||||
<option name="FONT_TYPE" value="1" />
|
||||
<option name="EFFECT_TYPE" value="1" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.DECORATOR">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="bbb529" />
|
||||
<option name="EFFECT_TYPE" value="1" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.FUNC_DEFINITION">
|
||||
<value>
|
||||
<option name="FONT_TYPE" value="1" />
|
||||
<option name="EFFECT_TYPE" value="1" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.KEYWORD">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="cc7832" />
|
||||
<option name="FONT_TYPE" value="1" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.KEYWORD_ARGUMENT">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="aa4926" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.PREDEFINED_DEFINITION">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="B200B2" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.PREDEFINED_USAGE">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="B200B2" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.SELF_PARAMETER">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="94558D" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.STRING.B">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="a5c261" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.STRING.U">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="008080" />
|
||||
</value>
|
||||
</option>
|
||||
</list>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?xml version='1.0'?>
|
||||
<list>
|
||||
<option name="MAKO.SUBSTITUTION">
|
||||
<value>
|
||||
<option name="BACKGROUND" value="E6E6FA" />
|
||||
<option name="EFFECT_TYPE" value="-1" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="MAKO.TAG">
|
||||
<value>
|
||||
<option name="EFFECT_TYPE" value="-1" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.BUILTIN_NAME">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="80" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.CLASS_DEFINITION">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="000000" />
|
||||
<option name="EFFECT_TYPE" value="1" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.DECORATOR">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="0000B2" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.FUNC_DEFINITION">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="000000" />
|
||||
<option name="EFFECT_TYPE" value="1" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.KEYWORD_ARGUMENT">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="660099" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.PREDEFINED_DEFINITION">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="B200B2" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.PREDEFINED_USAGE">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="B200B2" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.SELF_PARAMETER">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="94558D" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PY.STRING.U">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="008080" />
|
||||
<option name="FONT_TYPE" value="1" />
|
||||
</value>
|
||||
</option>
|
||||
</list>
|
||||
|
After Width: | Height: | Size: 342 B |
|
After Width: | Height: | Size: 284 B |
@@ -0,0 +1 @@
|
||||
__author__ = '$USER'
|
||||
@@ -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()
|
||||
@@ -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'
|
||||
)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Only has artwork and tips stuff
|
||||
skip: *.png
|
||||
skip: tips
|
||||
|
After Width: | Height: | Size: 277 B |
|
After Width: | Height: | Size: 1007 B |
|
After Width: | Height: | Size: 224 B |
|
After Width: | Height: | Size: 866 B |
|
After Width: | Height: | Size: 144 B |
|
After Width: | Height: | Size: 224 B |
|
After Width: | Height: | Size: 210 B |
|
After Width: | Height: | Size: 534 B |
|
After Width: | Height: | Size: 413 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 316 B |
|
After Width: | Height: | Size: 1019 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 537 B |
|
After Width: | Height: | Size: 341 B |
|
After Width: | Height: | Size: 880 B |
|
After Width: | Height: | Size: 141 B |
|
After Width: | Height: | Size: 342 B |
|
After Width: | Height: | Size: 140 B |
|
After Width: | Height: | Size: 318 B |
|
After Width: | Height: | Size: 139 B |
|
After Width: | Height: | Size: 265 B |
|
After Width: | Height: | Size: 585 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 700 B |
|
After Width: | Height: | Size: 584 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 682 B |
|
After Width: | Height: | Size: 570 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 668 B |
|
After Width: | Height: | Size: 590 B |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 628 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 313 B |
|
After Width: | Height: | Size: 981 B |
|
After Width: | Height: | Size: 715 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1020 B |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 115 B |
|
After Width: | Height: | Size: 227 B |
|
After Width: | Height: | Size: 715 B |
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,23 @@
|
||||
<component>
|
||||
<company name="JetBrains s.r.o." url="http://www.jetbrains.com/?fromIDE"/>
|
||||
<version major="3" minor="0" eap="true"/>
|
||||
<build number="__BUILD_NUMBER__" date="__BUILD_DATE__"/>
|
||||
<logo url="/pycharm_core_logo.png" textcolor="ffffff" progressColor="ffaa16" progressY="230" progressTailIcon="/community_progress_tail.png"/>
|
||||
<about url="/pycharm_core_about.png" logoX="300" logoY="265" logoW="75" logoH="30" foreground="ffffff" linkColor="fca11a"/>
|
||||
<icon size32="/PyCharmCore32.png" size16="/PyCharmCore16.png" size32opaque="/PyCharmCore32.png" size12="/PyCharmCore13.png" ico="PyCharmCore.ico"/>
|
||||
<package code="__PACKAGE_CODE__"/>
|
||||
<names product="PyCharm" fullname="PyCharm Educational Edition" script="charm"/>
|
||||
<install-over minbuild="0" maxbuild="0" version="1.x"/>
|
||||
|
||||
<welcome-screen logo-url="/PyCharmCoreWelcomeScreen.png" caption-url="PyCharmCoreWelcomeCaption.png" slogan-url="/developSlogan.png"/>
|
||||
|
||||
<third-party url="http://confluence.jetbrains.com/display/PYH/Third-Party+Software+Used+by+PyCharm"/>
|
||||
|
||||
<update-urls logo-url="/Logo_welcomeScreen.png"
|
||||
check="http://www.jetbrains.com/updates/updates.xml"
|
||||
patches="http://download.jetbrains.com/python/"/>
|
||||
|
||||
<feedback eap-url="http://www.jetbrains.com/feedback/feedback.jsp?product=PyCharm&build=$BUILD&timezone=$TIMEZONE&eval=$EVAL"
|
||||
release-url="http://www.jetbrains.com/feedback/feedback.jsp?product=PyCharm&build=$BUILD&timezone=$TIMEZONE&eval=$EVAL"/>
|
||||
<help file="pycharmhelp.jar" root="pycharm"/>
|
||||
</component>
|
||||
@@ -0,0 +1,5 @@
|
||||
<html>
|
||||
<body>
|
||||
This inspection highlights unresolved buildout parts.
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
This inspection detects when there aren't all abstract properties/methods are defined in subclass
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
This inspection highlights situations, where argument passed to function is equal to default parameter value
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
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.
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,21 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
Checks for cases when you rewrite loop variable with inner loop
|
||||
</span>
|
||||
<pre style="font-family: monospace">
|
||||
for i in xrange(5):
|
||||
for i in xrange(20, 25):
|
||||
print("Inner", i)
|
||||
print("Outer", i)
|
||||
</pre>
|
||||
<span style="font-family: verdana,serif;">
|
||||
It also warns you if variable declared in <code>with</code> statement is redeclared inside of statement body:
|
||||
</span>
|
||||
<pre style="font-family: monospace">
|
||||
with open("file") as f:
|
||||
f.read()
|
||||
with open("file") as f:
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif; font-size: smaller;">
|
||||
This inspection detects instance attribute definition outside __init__ method
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
This inspection highlights assignment that can be replaced with augmented assignment.
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
This inspection highlights too broad exception clauses such as
|
||||
no exception class specified, or specified as 'Exception'.
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
This inspection detects characters > 255 in byte literals.
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,15 @@
|
||||
<html>
|
||||
<body>
|
||||
<p style="font-family: verdana,serif;">
|
||||
This inspection checks for calls of a method by class while passing an instance of a different class
|
||||
as <code>self</code> parameter:</p>
|
||||
<pre>
|
||||
foo = Foo()
|
||||
Bar.baz(foo, *more)
|
||||
</pre>
|
||||
<p style="font-family: verdana,serif;">
|
||||
Sometimes this may be intentional and correct.
|
||||
But when unintentional, this leads to subtle bugs.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
This inspection highlights attempts to call objects which are not callable, like, for example, tuples.
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
This inspection highlights chained comparisons that can be simplified.
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
This inspection used when a class has no __init__ method, neither its parent classes.
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,5 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">This inspection detects classic style classes usage.</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
This inspection highlights comparisons with None. That type of comparisons
|
||||
should always be done with 'is' or 'is not', never the equality operators.
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<html>
|
||||
<body>
|
||||
<span style="font-family: verdana,serif;">
|
||||
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.
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<body>
|
||||
<p style="font-family: verdana,serif;">
|
||||
This inspection reports usages of @classmethod or @staticmethod decorators on functions outside of a class.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||