Python Code Quality Analyzer
Hi, I am CS Student currently working on my Project-Software Design Quality Analyzer so I want some help in this regard I want to compute Object-Oriented metrics and then have to detect various Object-Oriented Design smells. I want to know the list of python libraries that can be useful that I can use for this project. Any sort of help in this regard will be highly appreciated Thanks and Best Regards, Ali Jaffery
Hi, and welcome. Do you prefer to be known as Muhammad Ali or Ali Jaffery? What should we call you? On Sun, Nov 03, 2019 at 12:44:43AM +0500, Muhammad Ali wrote:
Hi, I am CS Student currently working on my Project-Software Design Quality Analyzer so I want some help in this regard I want to compute Object-Oriented metrics and then have to detect various Object-Oriented Design smells. I want to know the list of python libraries that can be useful that I can use for this project.
There is no canonical or official list. Since you're the only one who understands your requirements, you're the only one who can tell what is useful or not. We can only guess at what you need, what you already know, and what you need help with. How well do you know Python? Are you an expert or a beginner? Do you need advice on basic things like reading files, or more intermediate and/or advanced areas like parsing source code, analysing AST, or something else? Have you looked at the standard libraries that are provided with Python? There is a class browser, an ast library, possibly other things you may find useful. https://docs.python.org/3/library/language.html Have you looked at, and rejected, existing Python linters and code quality tools? Which ones? How closely do they come to meeting your needs? There's no official list, but I found these: https://code.visualstudio.com/docs/python/linting#_specific-linters https://realpython.com/python-code-quality/ by googling for "Python linter".
Any sort of help in this regard will be highly appreciated
Help us to help you. The better quality questions you ask, the better quality answers you are likely to get. Be polite. Don't post a list of demands, "I want ... I want ..." but ask actual questions. "Please" helps grease the wheels of communication, although you did already say "thanks", so thank you in return :-) Try not to ask vague questions, since you are likely to get vague, low quality answers in return, or worse, no answers at all. I know that there are many very knowledgable people here who, when faced with what they consider poorly worded questions, will prefer to just ignore you than to engage with you and help you ask better questions. I've been repeatedly told by some of these people that I should do the same, and I can understand why: I've spent over half an hour writing and editing this email, just hitting Delete on your message would have taken me half a second. But I think that is the very opposite of friendly and welcoming. Give focused questions whenever possible. If you said to your supervisor or lecturer what you said to us: I want to know the list of python libraries that can be useful that I can use for this project. what reply would you expect? When I was at university, the reply I would have expected was "I'm very glad to hear it. Let me know when you have constructed that list. I'm not here to do your work for you." I'm sure that academic standards have changed since then, but I'm pretty sure that they haven't changed so much that asking people on the internet to research your requirements for you is acceptable. Rather than asking vague questions like "What do I need?", ask focused questions that demonstrate that you have already done your homework: This is what I already have, these are the areas where I need help, can you point me to libraries that fill those gaps please? Otherwise you waste our time, and we waste your time pointing you to libraries you have already know about, or libraries that are not helpful to you. Regards, -- Steven
Hi, and welcome. Do you prefer to be known as Muhammad Ali or Ali Jaffery? What should we call you? On Sun, Nov 03, 2019 at 12:44:43AM +0500, Muhammad Ali wrote:
Hi, I am CS Student currently working on my Project-Software Design Quality Analyzer so I want some help in this regard I want to compute Object-Oriented metrics and then have to detect various Object-Oriented Design smells. I want to know the list of python libraries that can be useful that I can use for this project.
There is no canonical or official list. Since you're the only one who understands your requirements, you're the only one who can tell what is useful or not. We can only guess at what you need, what you already know, and what you need help with. How well do you know Python? Are you an expert or a beginner? Do you need advice on basic things like reading files, or more intermediate and/or advanced areas like parsing source code, analysing AST, or something else? Have you looked at the standard libraries that are provided with Python? There is a class browser, an ast library, possibly other things you may find useful. https://docs.python.org/3/library/language.html Have you looked at, and rejected, existing Python linters and code quality tools? Which ones? How closely do they come to meeting your needs? There's no official list, but I found these: https://code.visualstudio.com/docs/python/linting#_specific-linters https://realpython.com/python-code-quality/ by googling for "Python linter".
Any sort of help in this regard will be highly appreciated
Help us to help you. The better quality questions you ask, the better quality answers you are likely to get. Be polite. Don't post a list of demands, "I want ... I want ..." but ask actual questions. "Please" helps grease the wheels of communication, although you did already say "thanks", so thank you in return :-) Try not to ask vague questions, since you are likely to get vague, low quality answers in return, or worse, no answers at all. I know that there are many very knowledgable people here who, when faced with what they consider poorly worded questions, will prefer to just ignore you than to engage with you and help you ask better questions. I've been repeatedly told by some of these people that I should do the same, and I can understand why: I've spent over half an hour writing and editing this email, just hitting Delete on your message would have taken me half a second. But I think that is the very opposite of friendly and welcoming. Give focused questions whenever possible. If you said to your supervisor or lecturer what you said to us: I want to know the list of python libraries that can be useful that I can use for this project. what reply would you expect? When I was at university, the reply I would have expected was "I'm very glad to hear it. Let me know when you have constructed that list. I'm not here to do your work for you." I'm sure that academic standards have changed since then, but I'm pretty sure that they haven't changed so much that asking people on the internet to research your requirements for you is acceptable. Rather than asking vague questions like "What do I need?", ask focused questions that demonstrate that you have already done your homework: This is what I already have, these are the areas where I need help, can you point me to libraries that fill those gaps please? Otherwise you waste our time, and we waste your time pointing you to libraries you have already know about, or libraries that are not helpful to you. Regards, -- Steven
Ali Jaffrey, Welcome to the Python community. We can help with your explorations. What libraries have you started looking at? "Object-Oriented metrics" is an area with lots of investigation and debate, but no clear "right answers." Steven: we know your time is valuable. Thanks for writing 13 paragraphs that end with "don't waste our time." Keep in mind that some people say "I want" not as a demand, but to mean "my goal is." You are not obligated to answer every message. Take care of yourself first. --Ned. On 11/2/19 7:38 PM, Steven D'Aprano wrote:
Hi, and welcome. Do you prefer to be known as Muhammad Ali or Ali Jaffery? What should we call you?
On Sun, Nov 03, 2019 at 12:44:43AM +0500, Muhammad Ali wrote:
Hi, I am CS Student currently working on my Project-Software Design Quality Analyzer so I want some help in this regard I want to compute Object-Oriented metrics and then have to detect various Object-Oriented Design smells. I want to know the list of python libraries that can be useful that I can use for this project. There is no canonical or official list. Since you're the only one who understands your requirements, you're the only one who can tell what is useful or not. We can only guess at what you need, what you already know, and what you need help with.
How well do you know Python? Are you an expert or a beginner? Do you need advice on basic things like reading files, or more intermediate and/or advanced areas like parsing source code, analysing AST, or something else?
Have you looked at the standard libraries that are provided with Python? There is a class browser, an ast library, possibly other things you may find useful.
https://docs.python.org/3/library/language.html
Have you looked at, and rejected, existing Python linters and code quality tools? Which ones? How closely do they come to meeting your needs? There's no official list, but I found these:
https://code.visualstudio.com/docs/python/linting#_specific-linters
https://realpython.com/python-code-quality/
by googling for "Python linter".
Any sort of help in this regard will be highly appreciated Help us to help you. The better quality questions you ask, the better quality answers you are likely to get.
Be polite. Don't post a list of demands, "I want ... I want ..." but ask actual questions. "Please" helps grease the wheels of communication, although you did already say "thanks", so thank you in return :-)
Try not to ask vague questions, since you are likely to get vague, low quality answers in return, or worse, no answers at all.
I know that there are many very knowledgable people here who, when faced with what they consider poorly worded questions, will prefer to just ignore you than to engage with you and help you ask better questions.
I've been repeatedly told by some of these people that I should do the same, and I can understand why: I've spent over half an hour writing and editing this email, just hitting Delete on your message would have taken me half a second. But I think that is the very opposite of friendly and welcoming.
Give focused questions whenever possible. If you said to your supervisor or lecturer what you said to us:
I want to know the list of python libraries that can be useful that I can use for this project.
what reply would you expect?
When I was at university, the reply I would have expected was "I'm very glad to hear it. Let me know when you have constructed that list. I'm not here to do your work for you." I'm sure that academic standards have changed since then, but I'm pretty sure that they haven't changed so much that asking people on the internet to research your requirements for you is acceptable.
Rather than asking vague questions like "What do I need?", ask focused questions that demonstrate that you have already done your homework:
This is what I already have, these are the areas where I need help, can you point me to libraries that fill those gaps please?
Otherwise you waste our time, and we waste your time pointing you to libraries you have already know about, or libraries that are not helpful to you.
Regards,
On 11/2/19 1:44 PM, Muhammad Ali wrote:
Hi, I am CS Student currently working on my Project-Software Design Quality Analyzer so I want some help in this regard I want to compute Object-Oriented metrics and then have to detect various Object-Oriented Design smells. I want to know the list of python libraries that can be useful that I can use for this project. Any sort of help in this regard will be highly appreciated
to add to what Steven has said... be aware that object oriented programming is a concept, not an absolute. Python deals entirely in objects, and so is very object-oriented, but does not follow all of the same concepts the same way that other programming languages do. does this matter to you? what do you think makes up a code smell? do you care about this in a Python context, or are you just looking to use Python as the language to write your tool in and not worry about analyzing Python code? we really don't know anything yet...
participants (5)
-
Mats Wichmann
-
Muhammad Ali
-
Ned Batchelder
-
Steven D'Aprano
-
Steven D'Aprano