<table><tr><td style="">flherne created this revision.<br />Restricted Application added a subscriber: kdevelop-devel.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D4936" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>Since <a href="https://phabricator.kde.org/R53:6d0b76463b6d6d1d94d39327bae7ca28fa585e43" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;" rel="noreferrer">6d0b764</a> (~5.0-beta1) the minimum Python version has been 3.5.0,<br />
 but OpenSUSE Leap want to use KDevelop 5 and still have Python 3.4.</p>

<p>There are major breaking changes between 3.4.2 and 3.4.3, so earlier<br />
 versions will not be supported.</p>

<p>Now supported are 3.4.3+, 3.5.x and 3.6.x.</p>

<p>Syntax from Python versions newer than the one kdev-python is compiled<br />
 against will not be recognised and will cause false-positive errors<br />
 to be displayed to users. Please use the most recent version unless<br />
 there are unavoidable reasons to use an older one.</p>

<hr class="remarkup-hr" />

<p>In function calls:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">'stararg' is replaced by a StarredAst at the end of 'arguments'.</li>
<li class="remarkup-list-item">'kwargs' is replaced by a KeywordAst at the end of 'keywords'.</li>
</ul>

<p>A new CODE block in python36.sdef converts 3.4-style AST to the newer<br />
 format used by Python 3.5+ and within kdev-python. The conversion<br />
 script is tweaked to allow both CODE and SINCE on the same line, and<br />
 a new BEFORE directive (inverse of SINCE).</p>

<p>Operator @ (<u>matmul</u>) is inserted into the middle of the enum, so all<br />
 operators listed later have a different index.</p>

<p>All other AST changes are just new additions.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>No new tests. No test changes with Python 3.5+.<br />
All tests pass with 3.4 except those using newer syntax.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R53 KDevelop: Python Support</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D4936" rel="noreferrer">https://phabricator.kde.org/D4936</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>CMakeLists.txt<br />
duchain/tests/pyduchaintest.cpp<br />
parser/ast.h<br />
parser/conversionGenerator.py<br />
parser/generated.h<br />
parser/python36.sdef<br />
parser/tests/pyasttest.cpp</div></div></div><br /><div><strong>To: </strong>flherne, brauch<br /><strong>Cc: </strong>kdevelop-devel<br /></div>