public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/kdevelop-python] f44: 5.6.0
@ 2026-07-04 1:00 Jan Grulich
0 siblings, 0 replies; only message in thread
From: Jan Grulich @ 2026-07-04 1:00 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/kdevelop-python
Branch : f44
Commit : 8f4e55f1774ba11c1e85ab7f6f4db03e1b6e935b
Author : Jan Grulich <jgrulich@redhat.com>
Date : 2020-09-08T13:30:08+02:00
Stats : +9/-497 in 4 file(s)
URL : https://src.fedoraproject.org/rpms/kdevelop-python/c/8f4e55f1774ba11c1e85ab7f6f4db03e1b6e935b?branch=f44
Log:
5.6.0
---
diff --git a/.gitignore b/.gitignore
index 980756f..44fa05b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,4 @@
/kdev-python-5.5.0.tar.xz
/kdev-python-5.5.1.tar.xz
/kdev-python-5.5.2.tar.xz
+/kdev-python-5.6.0.tar.xz
diff --git a/kdevelop-python-39.patch b/kdevelop-python-39.patch
deleted file mode 100644
index fe1ab5a..0000000
--- a/kdevelop-python-39.patch
+++ /dev/null
@@ -1,487 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index af025cd3..9d851659 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -31,7 +31,7 @@ add_definitions( -DTRANSLATION_DOMAIN=\"kdevpython\" )
-
- # CMake looks for exactly the specified version first and ignores newer versions.
- # To avoid that, start looking for the newest supported version and work down.
--set(Python_ADDITIONAL_VERSIONS 3.8 3.7 3.6 3.5 3.4)
-+set(Python_ADDITIONAL_VERSIONS 3.9 3.8 3.7 3.6 3.5 3.4)
- foreach(_PYTHON_V ${Python_ADDITIONAL_VERSIONS})
- find_package(PythonInterp ${_PYTHON_V})
- if ( PYTHONINTERP_FOUND )
-@@ -49,7 +49,7 @@ if ( PYTHONINTERP_FOUND AND PYTHON_VERSION_STRING VERSION_GREATER "3.4" )
- endif()
-
- if ( NOT PYTHONLIBS_FOUND OR PYTHONLIBS_VERSION_STRING VERSION_LESS "3.4.3" )
-- message(FATAL_ERROR "Python >= 3.4.3 but < 3.9 with --enable-shared is required to build kdev-python")
-+ message(FATAL_ERROR "Python >= 3.4.3 but < 3.10 with --enable-shared is required to build kdev-python")
- endif()
-
- configure_file(kdevpythonversion.h.cmake "${CMAKE_CURRENT_BINARY_DIR}/kdevpythonversion.h" @ONLY)
-diff --git a/duchain/declarationbuilder.cpp b/duchain/declarationbuilder.cpp
-index 61e144c5..b588226a 100644
---- a/duchain/declarationbuilder.cpp
-+++ b/duchain/declarationbuilder.cpp
-@@ -1139,9 +1139,9 @@ void DeclarationBuilder::assignToSubscript(SubscriptAst* subscript, const Declar
- }
- auto map = MapType::Ptr::dynamicCast(list);
- if ( map ) {
-- if ( subscript->slice && subscript->slice->astType == Ast::IndexAstType ) {
-+ if ( subscript->slice && subscript->slice->astType != Ast::SliceAstType) {
- ExpressionVisitor keyVisitor(currentContext());
-- keyVisitor.visitNode(static_cast<IndexAst*>(subscript->slice)->value);
-+ keyVisitor.visitNode(subscript->slice);
- AbstractType::Ptr key = keyVisitor.lastType();
- if ( key ) {
- map->addKeyType<Python::UnsureType>(key);
-diff --git a/duchain/expressionvisitor.cpp b/duchain/expressionvisitor.cpp
-index 055c5b49..3185ea80 100644
---- a/duchain/expressionvisitor.cpp
-+++ b/duchain/expressionvisitor.cpp
-@@ -365,7 +365,7 @@ void ExpressionVisitor::visitSubscript(SubscriptAst* node)
- continue;
- }
- }
-- if ( (node->slice->astType != Ast::IndexAstType) && type.cast<ListType>() ) {
-+ if ( (node->slice->astType == Ast::SliceAstType) && type.cast<ListType>() ) {
- if ( type.cast<MapType>() ) {
- continue; // Can't slice dicts.
- }
-@@ -373,7 +373,7 @@ void ExpressionVisitor::visitSubscript(SubscriptAst* node)
- result = Helper::mergeTypes(result, type);
- }
- else if ( const auto& indexed = type.cast<IndexedContainer>() ) {
-- long sliceIndex = integerValue(static_cast<IndexAst*>(node->slice)->value, indexed->typesCount());
-+ long sliceIndex = integerValue(node->slice, indexed->typesCount());
- if ( 0 <= sliceIndex && sliceIndex < indexed->typesCount() ) {
- result = Helper::mergeTypes(result, indexed->typeAt(sliceIndex).abstractType());
- continue;
-diff --git a/duchain/tests/pyduchaintest.cpp b/duchain/tests/pyduchaintest.cpp
-index 17ba34e5..04d9164d 100644
---- a/duchain/tests/pyduchaintest.cpp
-+++ b/duchain/tests/pyduchaintest.cpp
-@@ -438,15 +438,15 @@ void PyDUChainTest::testCrashes_data() {
- " \"\"\"! returnContentEqualsContentOf ! -3\"\"\"\n"
- "e = Evil()\n"
- "z = [e.aa(1), e.bb(2), e.cc(3)]";
-+ QTest::newRow("comprehension_in_lambda") << "lambda foo: [bar for bar in foo]";
- #if PYTHON_VERSION >= QT_VERSION_CHECK(3, 6, 0)
- QTest::newRow("comprehension_in_fstring") <<
- "def crash(): return f'expr={ {x: y for x, y in [(1, 2), ]}}'";
--#endif
-- QTest::newRow("comprehension_in_lambda") << "lambda foo: [bar for bar in foo]";
- QTest::newRow("comprehension_in_annassign_1") << "foo: int = [x for x in (42,)][0]";
- QTest::newRow("comprehension_in_annassign_2") << "foo: [t for t in (int,)][0] = 42";
- QTest::newRow("lambda_in_annassign_1") << "foo: int = (lambda: 42)()";
- QTest::newRow("lambda_in_annassign_2") << "foo: (lambda: int)() = 42";
-+#endif
- QTest::newRow("definition_in_baseclass_1") << "class Foo(lambda x: 1): pass";
- QTest::newRow("definition_in_baseclass_2") << "class Foo([x for x in (1, 2)]): pass";
- }
-@@ -954,10 +954,12 @@ void PyDUChainTest::testTypes_data()
- // QTest::newRow("class_method_self") << "class c:\n def func(checkme, arg, arg2):\n pass\n" << "c";
- // QTest::newRow("funccall_dict") << "def foo(): return foo; checkme = foo();" << (uint) IntegralType::TypeFunction;
-
-+#if PYTHON_VERSION >= QT_VERSION_CHECK(3, 6, 0)
- // With only one subbed value we get a FormattedValue node
- QTest::newRow("fstring_formattedvalue") << "name = 'Jim'; checkme = f'{name}'" << "str";
- // Otherwise a JoinedString, with FormattedValues as children.
- QTest::newRow("fstring_joinedstring") << "name = 'Jim'; checkme = f'Hello, {name}! Your name is {name}.'" << "str";
-+#endif
-
- QTest::newRow("tuple_simple") << "mytuple = 3, 5.5\ncheckme, foobar = mytuple" << "int";
- QTest::newRow("tuple_simple2") << "mytuple = 3, 5.5\nfoobar, checkme = mytuple" << "float";
-@@ -1317,6 +1319,7 @@ void PyDUChainTest::testTypes_data()
- "def foo(a, b, /, c, d):\n"
- " return a, b, c, d\n"
- "checkme = foo(10, 'x', 2.3, d='y')\n" << "tuple of (int, str, float, str)";
-+ QTest::newRow("fstring_self_documenting") << "checkme = f'{expr=}'" << "str";
- #endif
- }
-
-@@ -1389,7 +1392,9 @@ void PyDUChainTest::testProblemCount_data()
- QTest::newRow("correct_return") << "def foo():\n return" << 0;
- QTest::newRow("lambda_argument_outside") << "def bar():\n lambda foo: 3\n foo" << 1;
- QTest::newRow("use_found_at_decl") << "foo = 3" << 0;
-+#if PYTHON_VERSION >= QT_VERSION_CHECK(3, 6, 0)
- QTest::newRow("fstring_visit_inside") << "checkme = f'{name}'" << 1;
-+#endif
- }
-
- void PyDUChainTest::testImportDeclarations_data() {
-diff --git a/kdevpythonversion.h.cmake b/kdevpythonversion.h.cmake
-index 48df127b..ab789ebb 100644
---- a/kdevpythonversion.h.cmake
-+++ b/kdevpythonversion.h.cmake
-@@ -20,9 +20,15 @@
- #ifndef KDEVPYTHON_VERSION_H
- #define KDEVPYTHON_VERSION_H
-
-+#define PYTHON_VERSION_MINOR @PYTHON_VERSION_MINOR@
-+#define PYTHON_VERSION_MINOR_STR "@PYTHON_VERSION_MINOR@"
-+
-+#define PYTHON_VERSION_MAJOR @PYTHON_VERSION_MAJOR@
- #define PYTHON_VERSION_MAJOR_STR "@PYTHON_VERSION_MAJOR@"
-+
- #define PYTHON_VERSION QT_VERSION_CHECK(@PYTHON_VERSION_MAJOR@, @PYTHON_VERSION_MINOR@, @PYTHON_VERSION_PATCH@)
- #define PYTHON_VERSION_STR "@PYTHON_VERSION_MAJOR@.@PYTHON_VERSION_MINOR@"
-+
- #define PYTHON_EXECUTABLE "@PYTHON_EXECUTABLE@"
-
- #endif
-diff --git a/parser/ast.cpp b/parser/ast.cpp
-index cd570d36..dee9365d 100644
---- a/parser/ast.cpp
-+++ b/parser/ast.cpp
-@@ -128,12 +128,7 @@ DictAst::DictAst(Ast* parent): ExpressionAst(parent, Ast::DictAstType)
-
- }
-
--IndexAst::IndexAst(Ast* parent): SliceAstBase(parent, Ast::IndexAstType), value(nullptr)
--{
--
--}
--
--SliceAst::SliceAst(Ast* parent): SliceAstBase(parent, Ast::SliceAstType), lower(nullptr), upper(nullptr), step(nullptr)
-+SliceAst::SliceAst(Ast* parent): ExpressionAst(parent, Ast::SliceAstType), lower(nullptr), upper(nullptr), step(nullptr)
- {
-
- }
-@@ -143,7 +138,7 @@ DictionaryComprehensionAst::DictionaryComprehensionAst(Ast* parent): ExpressionA
-
- }
-
--EllipsisAst::EllipsisAst(Ast* parent): SliceAstBase(parent, Ast::EllipsisAstType)
-+EllipsisAst::EllipsisAst(Ast* parent): ExpressionAst(parent, Ast::EllipsisAstType)
- {
-
- }
-@@ -173,11 +168,6 @@ YieldFromAst::YieldFromAst(Ast* parent) : ExpressionAst(parent, Ast::YieldFromAs
-
- }
-
--ExtendedSliceAst::ExtendedSliceAst(Ast* parent): SliceAstBase(parent, Ast::ExtendedSliceAstType)
--{
--
--}
--
- ForAst::ForAst(Ast* parent): StatementAst(parent, Ast::ForAstType), target(nullptr), iterator(nullptr)
- {
-
-@@ -288,11 +278,6 @@ SetComprehensionAst::SetComprehensionAst(Ast* parent): ExpressionAst(parent, Ast
-
- }
-
--SliceAstBase::SliceAstBase(Ast* parent, AstType type): Ast(parent, type)
--{
--
--}
--
- StatementAst::StatementAst(Ast* parent, AstType type): Ast(parent, type)
- {
-
-diff --git a/parser/ast.h b/parser/ast.h
-index 65fef1cd..e459a780 100644
---- a/parser/ast.h
-+++ b/parser/ast.h
-@@ -55,7 +55,6 @@ namespace Python {
- class ExceptionHandlerAst;
- class AliasAst;
- class ComprehensionAst;
-- class SliceAstBase;
- class SliceAst;
- }
-
-@@ -102,7 +101,6 @@ public:
- NameConstantAstType,
- CallAstType,
- AttributeAstType,
-- ExtendedSliceAstType,
- DictionaryComprehensionAstType,
- BooleanOperationAstType,
- BinaryOperationAstType,
-@@ -127,10 +125,8 @@ public:
- TupleAstType,
- YieldFromAstType,
- ComprehensionAstType,
--
- SliceAstType,
- EllipsisAstType,
-- IndexAstType,
- AssignmentExpressionAstType,
- LastExpressionType, // keep this at the end of the expr ast list
-
-@@ -681,7 +677,7 @@ class KDEVPYTHONPARSER_EXPORT SubscriptAst : public ExpressionAst {
- public:
- SubscriptAst(Ast* parent);
- ExpressionAst* value;
-- SliceAstBase* slice;
-+ ExpressionAst* slice;
- ExpressionAst::Context context;
- };
-
-@@ -706,18 +702,12 @@ public:
- ExpressionAst::Context context;
- };
-
--/** Slice classes **/
--class KDEVPYTHONPARSER_EXPORT SliceAstBase : public Ast {
--public:
-- SliceAstBase(Ast* parent, AstType type);
--};
--
--class KDEVPYTHONPARSER_EXPORT EllipsisAst : public SliceAstBase {
-+class KDEVPYTHONPARSER_EXPORT EllipsisAst : public ExpressionAst {
- public:
- EllipsisAst(Ast* parent);
- };
-
--class KDEVPYTHONPARSER_EXPORT SliceAst : public SliceAstBase {
-+class KDEVPYTHONPARSER_EXPORT SliceAst : public ExpressionAst {
- public:
- SliceAst(Ast* parent);
- ExpressionAst* lower;
-@@ -725,17 +715,6 @@ public:
- ExpressionAst* step;
- };
-
--class KDEVPYTHONPARSER_EXPORT ExtendedSliceAst : public SliceAstBase {
--public:
-- ExtendedSliceAst(Ast* parent);
-- QList<SliceAst*> dims;
--};
--
--class KDEVPYTHONPARSER_EXPORT IndexAst : public SliceAstBase {
--public:
-- IndexAst(Ast* parent);
-- ExpressionAst* value;
--};
-
- /** Independent classes **/
-
-diff --git a/parser/astbuilder.cpp b/parser/astbuilder.cpp
-index ad2e0dce..76e652ca 100644
---- a/parser/astbuilder.cpp
-+++ b/parser/astbuilder.cpp
-@@ -104,7 +104,7 @@ CodeAst::Ptr AstBuilder::parse(const QUrl& filename, QString &contents)
- #if PYTHON_VERSION >= QT_VERSION_CHECK(3, 8, 0)
- PyCompilerFlags flags;
- flags.cf_flags = PyCF_SOURCE_IS_UTF8 | PyCF_IGNORE_COOKIE | PyCF_ONLY_AST;
-- flags.cf_feature_version = 7;
-+ flags.cf_feature_version = PYTHON_VERSION_MINOR;
- #else
- PyCompilerFlags flags = {PyCF_SOURCE_IS_UTF8 | PyCF_IGNORE_COOKIE};
- #endif
-diff --git a/parser/astdefaultvisitor.cpp b/parser/astdefaultvisitor.cpp
-index cdd31bbf..bf79ff52 100644
---- a/parser/astdefaultvisitor.cpp
-+++ b/parser/astdefaultvisitor.cpp
-@@ -113,11 +113,6 @@ void AstDefaultVisitor::visitDelete(DeleteAst* node)
- visitNodeList(node->targets);
- }
-
--void AstDefaultVisitor::visitExtendedSlice(ExtendedSliceAst* node)
--{
-- visitNodeList(node->dims);
--}
--
- void AstDefaultVisitor::visitFor(ForAst* node)
- {
- visitNode(node->target);
-@@ -157,11 +152,6 @@ void AstDefaultVisitor::visitImportFrom(ImportFromAst* node)
- visitIdentifier(node->module);
- }
-
--void AstDefaultVisitor::visitIndex(IndexAst* node)
--{
-- visitNode(node->value);
--}
--
- void AstDefaultVisitor::visitLambda(LambdaAst* node)
- {
- visitNode(node->arguments);
-diff --git a/parser/astdefaultvisitor.h b/parser/astdefaultvisitor.h
-index aa1f540c..85c31b46 100644
---- a/parser/astdefaultvisitor.h
-+++ b/parser/astdefaultvisitor.h
-@@ -93,8 +93,6 @@ public:
- void visitTuple(TupleAst* node) override;
- void visitEllipsis(EllipsisAst* node) override;
- void visitSlice(SliceAst* node) override;
-- void visitExtendedSlice(ExtendedSliceAst* node) override;
-- void visitIndex(IndexAst* node) override;
- void visitArguments(ArgumentsAst* node) override;
- void visitArg(ArgAst* node) override;
- void visitKeyword(KeywordAst* node) override;
-@@ -167,8 +165,6 @@ public:
- void visitTuple(TupleAst* node) override { AstDefaultVisitor::visitTuple(node); delete node; }
- void visitEllipsis(EllipsisAst* node) override { AstDefaultVisitor::visitEllipsis(node); delete node; }
- void visitSlice(SliceAst* node) override { AstDefaultVisitor::visitSlice(node); delete node; }
-- void visitExtendedSlice(ExtendedSliceAst* node) override { AstDefaultVisitor::visitExtendedSlice(node); delete node; }
-- void visitIndex(IndexAst* node) override { AstDefaultVisitor::visitIndex(node); delete node; }
- void visitArguments(ArgumentsAst* node) override { AstDefaultVisitor::visitArguments(node); delete node; }
- void visitArg(ArgAst* node) override { AstDefaultVisitor::visitArg(node); delete node; }
- void visitKeyword(KeywordAst* node) override { AstDefaultVisitor::visitKeyword(node); delete node; }
-diff --git a/parser/astvisitor.cpp b/parser/astvisitor.cpp
-index 51c5a1c5..5dc5e4ec 100644
---- a/parser/astvisitor.cpp
-+++ b/parser/astvisitor.cpp
-@@ -90,8 +90,6 @@ void AstVisitor::visitNode(Ast* node)
- case Ast::TupleAstType: this->visitTuple(static_cast<TupleAst*>(node)); break;
- case Ast::EllipsisAstType: this->visitEllipsis(static_cast<EllipsisAst*>(node)); break;
- case Ast::SliceAstType: this->visitSlice(static_cast<SliceAst*>(node)); break;
-- case Ast::ExtendedSliceAstType: this->visitExtendedSlice(static_cast<ExtendedSliceAst*>(node)); break;
-- case Ast::IndexAstType: this->visitIndex(static_cast<IndexAst*>(node)); break;
- case Ast::ArgumentsAstType: this->visitArguments(static_cast<ArgumentsAst*>(node)); break;
- case Ast::KeywordAstType: this->visitKeyword(static_cast<KeywordAst*>(node)); break;
- case Ast::ArgAstType: this->visitArg(static_cast<ArgAst*>(node)); break;
-diff --git a/parser/astvisitor.h b/parser/astvisitor.h
-index 51aa47b4..be9f759f 100644
---- a/parser/astvisitor.h
-+++ b/parser/astvisitor.h
-@@ -106,8 +106,6 @@ public:
- virtual void visitTuple(TupleAst* node) { Q_UNUSED(node); };
- virtual void visitEllipsis(EllipsisAst* node) { Q_UNUSED(node); };
- virtual void visitSlice(SliceAst* node) { Q_UNUSED(node); };
-- virtual void visitExtendedSlice(ExtendedSliceAst* node) { Q_UNUSED(node); };
-- virtual void visitIndex(IndexAst* node) { Q_UNUSED(node); };
- virtual void visitArguments(ArgumentsAst* node) { Q_UNUSED(node); };
- virtual void visitKeyword(KeywordAst* node) { Q_UNUSED(node); };
- virtual void visitArg(ArgAst* node) { Q_UNUSED(node); };
-diff --git a/parser/conversionGenerator.py b/parser/conversionGenerator.py
-index 66055953..3419b3d2 100644
---- a/parser/conversionGenerator.py
-+++ b/parser/conversionGenerator.py
-@@ -313,6 +313,8 @@ for index, lines in sorted(results.items()):
- func = func_structure.replace('%{RULE_FOR}', index).replace('%{SWITCH_LINES}', current_switch_lines).replace('%{APPENDIX}', appendix)
- else:
- func = simple_func_structure.replace('%{RULE_FOR}', index).replace('%{SWITCH_LINES}', current_switch_lines)
-+ if index == '_slice':
-+ func = "#if PYTHON_VERSION < QT_VERSION_CHECK(3, 9, 0)\n" + func + "\n#endif\n"
- print(func)
-
- print('''};
-diff --git a/parser/generated.h b/parser/generated.h
-index e1136f84..2ba754df 100644
---- a/parser/generated.h
-+++ b/parser/generated.h
-@@ -426,6 +426,16 @@ PyObject *value = node->v.Constant.value;if (value == Py_None) { NameConstant
- result = v;
- break;
- }
-+#endif
-+#if PYTHON_VERSION >= QT_VERSION_CHECK(3, 9, 0)
-+ case Slice_kind: {
-+ SliceAst* v = new SliceAst(parent());
-+ nodeStack.push(v); v->lower = static_cast<ExpressionAst*>(visitNode(node->v.Slice.lower)); nodeStack.pop();
-+ nodeStack.push(v); v->upper = static_cast<ExpressionAst*>(visitNode(node->v.Slice.upper)); nodeStack.pop();
-+ nodeStack.push(v); v->step = static_cast<ExpressionAst*>(visitNode(node->v.Slice.step)); nodeStack.pop();
-+ result = v;
-+ break;
-+ }
- #endif
- default:
- qWarning() << "Unsupported _expr AST type: " << node->kind;
-@@ -480,12 +490,14 @@ PyObject *value = node->v.Constant.value;if (value == Py_None) { NameConstant
- return v;
- }
-
-+#if PYTHON_VERSION < QT_VERSION_CHECK(3, 9, 0)
-
- Ast* visitNode(_slice* node) {
- if ( ! node ) return nullptr;
- bool ranges_copied = false; Q_UNUSED(ranges_copied);
- Ast* result = nullptr;
- switch ( node->kind ) {
-+#if PYTHON_VERSION < QT_VERSION_CHECK(3, 9, 0)
- case Slice_kind: {
- SliceAst* v = new SliceAst(parent());
- nodeStack.push(v); v->lower = static_cast<ExpressionAst*>(visitNode(node->v.Slice.lower)); nodeStack.pop();
-@@ -494,18 +506,21 @@ PyObject *value = node->v.Constant.value;if (value == Py_None) { NameConstant
- result = v;
- break;
- }
-+#endif
-+#if PYTHON_VERSION < QT_VERSION_CHECK(3, 9, 0)
- case ExtSlice_kind: {
-- ExtendedSliceAst* v = new ExtendedSliceAst(parent());
-- nodeStack.push(v); v->dims = visitNodeList<_slice, SliceAst>(node->v.ExtSlice.dims); nodeStack.pop();
-+ TupleAst* v = new TupleAst(parent());
-+ nodeStack.push(v); v->elements = visitNodeList<_expr, ExpressionAst>(node->v.ExtSlice.dims); nodeStack.pop();
- result = v;
- break;
- }
-+#endif
-+#if PYTHON_VERSION < QT_VERSION_CHECK(3, 9, 0)
- case Index_kind: {
-- IndexAst* v = new IndexAst(parent());
-- nodeStack.push(v); v->value = static_cast<ExpressionAst*>(visitNode(node->v.Index.value)); nodeStack.pop();
-- result = v;
-+ return visitNode(node->v.Index.value);
- break;
- }
-+#endif
- default:
- qWarning() << "Unsupported _slice AST type: " << node->kind;
- Q_ASSERT(false);
-@@ -537,6 +552,8 @@ PyObject *value = node->v.Constant.value;if (value == Py_None) { NameConstant
- return result;
- }
-
-+#endif
-+
-
- Ast* visitNode(_stmt* node) {
- if ( ! node ) return nullptr;
-diff --git a/parser/python38.sdef b/parser/python39.sdef
-similarity index 96%
-rename from parser/python38.sdef
-rename to parser/python39.sdef
-index 30d9f95a..6b9b8b37 100644
---- a/parser/python38.sdef
-+++ b/parser/python39.sdef
-@@ -129,10 +129,11 @@ else {
- Q_ASSERT(false);
- };;
- RULE_FOR _expr;KIND NamedExpr_kind;ACTIONS create|AssignmentExpressionAst set|target->ExpressionAst,target set|value->ExpressionAst,value;SINCE 3.8;;
-+RULE_FOR _expr;KIND Slice_kind;ACTIONS create|SliceAst set|lower->ExpressionAst,lower set|upper->ExpressionAst,upper set|step->ExpressionAst,step;SINCE 3.9;;
-
--RULE_FOR _slice;KIND Slice_kind;ACTIONS create|SliceAst set|lower->ExpressionAst,lower set|upper->ExpressionAst,upper set|step->ExpressionAst,step;;
--RULE_FOR _slice;KIND ExtSlice_kind;ACTIONS create|ExtendedSliceAst set|dims=>SliceAst,dims;;
--RULE_FOR _slice;KIND Index_kind;ACTIONS create|IndexAst set|value->ExpressionAst,value;;
-+RULE_FOR _slice;KIND Slice_kind;ACTIONS create|SliceAst set|lower->ExpressionAst,lower set|upper->ExpressionAst,upper set|step->ExpressionAst,step;BEFORE 3.9;;
-+RULE_FOR _slice;KIND ExtSlice_kind;ACTIONS create|TupleAst set|elements=>ExpressionAst,dims;BEFORE 3.9;;
-+RULE_FOR _slice;KIND Index_kind;ACTIONS;BEFORE 3.9;CODE return visitNode(node->v.Index.value);;
-
-
- RULE_FOR _comprehension;KIND any;ACTIONS create|ComprehensionAst set|target->ExpressionAst,target set|iterator->ExpressionAst,iter set|conditions=>ExpressionAst,ifs;;
-diff --git a/parser/rangefixvisitor.cpp b/parser/rangefixvisitor.cpp
-index c7804d3e..c70ed181 100644
---- a/parser/rangefixvisitor.cpp
-+++ b/parser/rangefixvisitor.cpp
-@@ -70,6 +70,11 @@ void RangeFixVisitor::visitNode(Ast* node) {
- }
- };
-
-+void RangeFixVisitor::visitCode(CodeAst* node) {
-+ node->startLine = node->startCol = 0;
-+ AstDefaultVisitor::visitCode(node);
-+}
-+
- void RangeFixVisitor::visitFunctionDefinition(FunctionDefinitionAst* node) {
- cutDefinitionPreamble(node->name, node->async ? "asyncdef" : "def");
- AstDefaultVisitor::visitFunctionDefinition(node);
-diff --git a/parser/rangefixvisitor.h b/parser/rangefixvisitor.h
-index 30ca5927..fac49e0c 100644
---- a/parser/rangefixvisitor.h
-+++ b/parser/rangefixvisitor.h
-@@ -37,6 +37,7 @@ class KDEVPYTHONPARSER_NO_EXPORT RangeFixVisitor : public AstDefaultVisitor {
- public:
- RangeFixVisitor(const QString& contents) : lines(contents.split('\n')) {};
- void visitNode(Ast* node) override;
-+ void visitCode(Python::CodeAst* node) override;
- void visitFunctionDefinition(FunctionDefinitionAst* node) override;
- void visitClassDefinition(ClassDefinitionAst* node) override;
- void visitAttribute(AttributeAst* node) override;
diff --git a/kdevelop-python.spec b/kdevelop-python.spec
index d533d1f..6bb25a0 100644
--- a/kdevelop-python.spec
+++ b/kdevelop-python.spec
@@ -1,10 +1,10 @@
%undefine __cmake_in_source_build
Name: kdevelop-python
-Version: 5.5.2
+Version: 5.6.0
%global py3_suffix -py3
%global py3_tag .py3
-Release: 4%{?dist}
+Release: 1%{?dist}
License: GPLv2
Source0: http://download.kde.org/stable/kdevelop/%{version}/src/kdev-python-%{version}.tar.xz
@@ -23,9 +23,6 @@ Patch1: kdev-python-1.7.0-py3-doc-syntax.patch
# Fix syntax error due to async being a reserved keyword in python3.7
Patch2: kdev-python_async.patch
-# Python 3.9 support
-Patch3: kdevelop-python-39.patch
-
Summary: Python 3 Plugin for KDevelop
URL: https://www.kdevelop.org/
@@ -67,8 +64,6 @@ Python 3 language support for the KDevelop Integrated Development Environment.
%patch1 -p1
# async
%patch2 -p1
-# Python 3.9
-%patch3 -p1
%build
%{cmake_kf5}
@@ -95,12 +90,15 @@ rm -f %{buildroot}%{_datadir}/kdevpythonsupport/documentation_files/PyKDE4/parse
%{_libdir}/libkdevpythoncompletion.so
%{_datadir}/kdevpythonsupport
%{_datadir}/kdevappwizard/templates/*
-%{_kf5_qtplugindir}/kdevplatform/33/kdevpdb.so
-%{_kf5_qtplugindir}/kdevplatform/33/kdevpythonlanguagesupport.so
+%{_kf5_qtplugindir}/kdevplatform/34/kdevpdb.so
+%{_kf5_qtplugindir}/kdevplatform/34/kdevpythonlanguagesupport.so
%{_datadir}/qlogging-categories5/kdevpythonsupport.categories
%{_datadir}/metainfo/org.kde.kdev-python.metainfo.xml
%changelog
+* Tue Sep 08 2020 Jan Grulich <jgrulich@redhat.com> - 5.6.0-1
+- 5.6.0
+
* Mon Aug 24 2020 Jan Grulich <jgrulich@redhat.com> - 5.5.2-4
- Support Python 3.9
diff --git a/sources b/sources
index 811695b..2f3d27a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (kdev-python-5.5.2.tar.xz) = 2558e4ad7485abe8473b703a3d80a1faea9e4152eb7be314ea8c3d46c841f457983206b1bc55f454496b81a468a2f8718086e1b0db3e9e880c50011407e7866e
+SHA512 (kdev-python-5.6.0.tar.xz) = c6a866a563f3304aab860f66d752a617f8a0822c2e3b0f4131b8e8603f2ed86b5141ad308f967ffc5e9458693f389281a8918feea9fc584d7b4213fa265479be
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-07-04 1:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-04 1:00 [rpms/kdevelop-python] f44: 5.6.0 Jan Grulich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox