• Friday finking: IDE 'macro expansions'

    From dn@21:1/5 to All on Fri Mar 17 11:55:38 2023
    It is a long, long, time since I've thrown one of these into the
    maelstrom of our musings.
    (have the nightmares receded?)


    Do you make use of your IDE's expansionist tendencies, and if-so, which
    ones?


    NB this is where vi/emacs enthusiasts start chuckling (polite term for
    'insane cackling'). Hence the question's limitation to IDEs, cf 'editors'! Also: I'm talking 'PyCharm' because of the story, but others use Codium, Sublime Text, etc - which presumably offer equivalent features.


    Was helping a friend install PyCharm. Jumped into the Settings. Isn't it incredible how many there are?

    Idly noted that there are two short-cut or macro-expansion types of
    facilities:
    - Postfix Completion, (nothing to do with email or polish notation) and
    - Live Templates (again, we're not talking about jinja2)


    With both, one types an abbreviated-name and the IDE will expand it into appropriate code. For (LiveTemplate) example, typing compli and pressing
    Tab induces PyCharm to add the following to the program[me]:

    [ ! for ! in !drop-down menu! if ! ]

    It offers further typo-saving through the drop-down menu which lists a
    bunch of likely (iterable) candidates from amongst previously-written
    code. The action continues after selecting from the menu, by inviting completion of the other ("!") placeholders, in-turn.


    I haven't made use of such a tool, to-date - OK, yes, I have practised a
    high typing-speed (and accuracy). Puff, puff...

    Also, at the time, I'm thinking in 'code', rather than about what tool
    might implement said ideas.


    Do you make use of such expansionist-tendencies?

    Do you make use of other powerful features within the IDE, or are its
    editor functionalities employed at pretty-much the NotePad level?



    Web.Refs: https://www.jetbrains.com/help/pycharm/settings-postfix-completion.html https://www.jetbrains.com/help/pycharm/using-live-templates.html#live_templates_types
    --
    Regards,
    =dn

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mats Wichmann@21:1/5 to dn via Python-list on Thu Mar 16 17:29:44 2023
    On 3/16/23 16:55, dn via Python-list wrote:
    It is a long, long, time since I've thrown one of these into the
    maelstrom of our musings.
    (have the nightmares receded?)


    Do you make use of your IDE's expansionist tendencies, and if-so, which ones?


    NB this is where vi/emacs enthusiasts start chuckling (polite term for 'insane cackling'). Hence the question's limitation to IDEs, cf 'editors'! Also: I'm talking 'PyCharm' because of the story, but others use Codium, Sublime Text, etc - which presumably offer equivalent features.


    Was helping a friend install PyCharm. Jumped into the Settings. Isn't it incredible how many there are?

    Idly noted that there are two short-cut or macro-expansion types of facilities:
    - Postfix Completion, (nothing to do with email or polish notation) and
    - Live Templates (again, we're not talking about jinja2)


    With both, one types an abbreviated-name and the IDE will expand it into appropriate code. For (LiveTemplate) example, typing compli and pressing
    Tab induces PyCharm to add the following to the program[me]:

        [ ! for ! in !drop-down menu! if ! ]

    It offers further typo-saving through the drop-down menu which lists a
    bunch of likely (iterable) candidates from amongst previously-written
    code. The action continues after selecting from the menu, by inviting completion of the other ("!") placeholders, in-turn.


    I haven't made use of such a tool, to-date - OK, yes, I have practised a high typing-speed (and accuracy). Puff, puff...

    Also, at the time, I'm thinking in 'code', rather than about what tool
    might implement said ideas.


    Do you make use of such expansionist-tendencies?

    Do you make use of other powerful features within the IDE, or are its
    editor functionalities employed at pretty-much the NotePad level?

    Not sure the purpose of the "survey" but - no, I don't use these. IDEs
    are incredible things, but you need to invest yourself completely in
    them, basically live in them, or there's not that much payback. There's
    just too much to remember, and honestly, too much mouse movement needed, especially if you have a big screen. In the PyCharm case, the startup
    time is incredibly slow, so, since I don't "live in it", I don't use it
    much any more - there are some things it does superbly, but it's such a
    cost to fire it up just for those I pretty much don't bother any more.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From 2QdxY4RzWzUUiLuE@potatochowder.com@21:1/5 to dn via Python-list on Thu Mar 16 20:06:01 2023
    On 2023-03-17 at 11:55:38 +1300,
    dn via Python-list <python-list@python.org> wrote:

    Do you make use of your IDE's expansionist tendencies, and if-so, which
    ones?

    Expansionist tendencies. Nice phrase. :-)

    NB this is where vi/emacs enthusiasts start chuckling (polite term for 'insane cackling') ...

    Long time (since the 1980s, when you had to edit config.h and compile it yourself) insane emacs enthusiast and "Unix is my IDE" claimant here. I
    used one language that required a special editor because the "source
    code" was a semi-compiled byte stream instead of ASCII. A coworker once awarded me a black belt in vi for knowing how to indent and unindent
    code.

    They made me write in Java at my last job; that language encourages IDEs
    beause they deny that the underlying OS and tools exist at all. I used
    to say that some of my coworkers weren't writing Java, they were writing IntelliJ.

    Anyway, the short answer to your question is no.

    I think the main reason is that there are/were too many editors in too
    many contexts to start depending on such features. What happens if I'm
    editing on a target box instead of my desktop? What if I'm helping a
    coworker, and they use a different editor (different tools for different programmers)?

    I haven't made use of such a tool, to-date - OK, yes, I have practised a
    high typing-speed (and accuracy). Puff, puff...

    I, too, type relatively quickly, which definitely relieves some of the
    appeal. Saving a few keystrokes isn't worth the extra congnitive load
    to remember how to use those features. And by the time I edit the
    template, it's more keystrokes (and usually cursor motion and
    placeholder deletion keystrokes not related to the programming task at
    hand) than if I had typed the full code in the first place.

    Also, at the time, I'm thinking in 'code', rather than about what tool might implement said ideas.

    Exactly. Any excursion away from the programming language and the
    programming task at hand is disruptive.

    I did finally train myself to use Emacs' dabbrev-expand function, which completes the current "word" according to the previous occurrance of
    that word, which lets me use longer identifiers without having to type
    them out or copy/paste them. That said, I often find myself typing
    stuff out anyway, again because any deviation from writing code is a
    deviation from writing code.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Passin@21:1/5 to dn via Python-list on Thu Mar 16 19:54:21 2023
    On 3/16/2023 6:55 PM, dn via Python-list wrote:
    It is a long, long, time since I've thrown one of these into the
    maelstrom of our musings.
    (have the nightmares receded?)


    Do you make use of your IDE's expansionist tendencies, and if-so, which
    ones?


    NB this is where vi/emacs enthusiasts start chuckling (polite term for 'insane cackling'). Hence the question's limitation to IDEs, cf 'editors'! Also: I'm talking 'PyCharm' because of the story, but others use Codium, Sublime Text, etc - which presumably offer equivalent features.


    Was helping a friend install PyCharm. Jumped into the Settings. Isn't it incredible how many there are?

    Idly noted that there are two short-cut or macro-expansion types of facilities:
    - Postfix Completion, (nothing to do with email or polish notation) and
    - Live Templates (again, we're not talking about jinja2)


    With both, one types an abbreviated-name and the IDE will expand it into appropriate code. For (LiveTemplate) example, typing compli and pressing
    Tab induces PyCharm to add the following to the program[me]:

        [ ! for ! in !drop-down menu! if ! ]

    It offers further typo-saving through the drop-down menu which lists a
    bunch of likely (iterable) candidates from amongst previously-written
    code. The action continues after selecting from the menu, by inviting completion of the other ("!") placeholders, in-turn.


    I haven't made use of such a tool, to-date - OK, yes, I have practised a
    high typing-speed (and accuracy). Puff, puff...

    Also, at the time, I'm thinking in 'code', rather than about what tool
    might implement said ideas.


    Do you make use of such expansionist-tendencies?

    Do you make use of other powerful features within the IDE, or are its
    editor functionalities employed at pretty-much the NotePad level?

    In general, I don't like a lot of popups and code completions, so I tend
    to avoid them. I don't even like automatic parens or brace insertion.
    They distract me, and often put the cursor somewhere I don't want it.

    Of course, for Python code I do like automatic indentation after a
    colon: if the cursor ends up in the right place, then I'm happy.

    If I'm using a plain editor, then I usually like EditPlus. It's not
    free but the cost is low and it's well worth it (but Windows only). It
    knows about file types, and can do various insertions and completions if
    you want (as I said, I mostly don't). I also use Notepad++, but I more
    often go with EditPlus.

    What I find more useful is matching brackets/parens/braces. Not
    inserting them but highlighting or (better) jumping to the matching one
    when asked.

    Otherwise I'm usually working in the Leo Editor, which is hard to
    explain in a few words but is a real gift, especially for Python
    programmers. It does have an abbreviation capability that I use a
    little, but so far mostly for inserting symbols like math and Greek
    letters. Leo is written in Python (with a Qt GUI) and you can easily
    get access to all its internals, so once you learn something about how
    it works, you can create scripts to do almost anything you want.

    The Leo Editor is an MIT-licensed project on GitHub (I know I sound very positive but despite that, it's not my project; it really can grow on
    you - if you are willing to climb the learning curve).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Grant Edwards@21:1/5 to Thomas Passin on Thu Mar 16 19:31:04 2023
    On 2023-03-16, Thomas Passin <list1@tompassin.net> wrote:

    In general, I don't like a lot of popups and code completions, so I
    tend to avoid them. I don't even like automatic parens or brace
    insertion.

    I _hate_ it when the "editor" decides to insert stuff I didn't
    type. There's an html editor I use occasionally that auto-inserts the
    closing tag when you type an opening tag. It's, always, 100% of the
    time, wrong. Either the tag ends up in the wrong place, or it's a
    duplicate because there was already a closing tag.

    They distract me, and often put the cursor somewhere I don't want it.

    Maybe it matters how good a typist you are, but I don't really
    concentrate that hard on watching the letters show up on the screen,
    so any sort of "IDE know better than you do" stuff tends to trip me
    up.

    Of course, for Python code I do like automatic indentation after a
    colon: if the cursor ends up in the right place, then I'm happy.

    Yep, I do allow emacs to do auto indent.

    If I'm using a plain editor, then I usually like EditPlus. It's not
    free but the cost is low and it's well worth it (but Windows only).
    It knows about file types, and can do various insertions and
    completions if you want (as I said, I mostly don't). I also use
    Notepad++, but I more often go with EditPlus.

    What I find more useful is matching brackets/parens/braces. Not
    inserting them but highlighting or (better) jumping to the matching one
    when asked.

    Same here.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Ward@21:1/5 to dn via Python-list on Fri Mar 17 09:32:33 2023
    On Fri, Mar 17, 2023 at 11:55:38AM +1300, dn via Python-list wrote:
    Do you make use of your IDE's expansionist tendencies, and if-so, which
    ones?

    Unix (well, GNU/Linux) is my IDE ;)

    Simon

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Roel Schroeven@21:1/5 to All on Fri Mar 17 14:05:50 2023
    Op 17/03/2023 om 0:54 schreef Thomas Passin:
    What I find more useful is matching brackets/parens/braces.  Not
    inserting them but highlighting or (better) jumping to the matching
    one when asked.
    That is very helpful indeed.
    Even better than simply highlighting is (IMO) a thing called "Rainbow
    Braces" or "Bracket Pair Colorization" I recently learned about: both
    braces of a matching pair get the same color, while other pairs get
    other colors. I have to say I like it quite a lot. It's in VS Code these
    days; possible there are implementations or extensions for other editors
    and IDEs as well.

    --
    "Most of us, when all is said and done, like what we like and make up
    reasons for it afterwards."
    -- Soren F. Petersen

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Passin@21:1/5 to Simon Ward on Fri Mar 17 09:44:44 2023
    On 3/17/2023 9:38 AM, Simon Ward wrote:
    On Fri, Mar 17, 2023 at 02:05:50PM +0100, Roel Schroeven wrote:
    Even better than simply highlighting is (IMO) a thing called "Rainbow
    Braces" or "Bracket Pair Colorization" I recently learned about: both
    braces of a matching pair get the same color, while other pairs get
    other colors. I have to say I like it quite a lot. It's in VS Code
    these days; possible there are implementations or extensions for other
    editors and IDEs as well.

    VS Code also supports ‘semantic highlighting’: Instead of simply highlighting syntax, highlight the same identifiers in the same colours,
    with the aim of helping you see them through the flow of the code.

    Even with a simple "Find" command I don't like that behavior, let alone
    for programming. I find that all those other marked instances make it
    harder for me to read the surrounding material. They are good for
    moving from one instance to another, but otherwise they get in the way
    for me.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Ward@21:1/5 to Roel Schroeven on Fri Mar 17 13:38:34 2023
    On Fri, Mar 17, 2023 at 02:05:50PM +0100, Roel Schroeven wrote:
    Even better than simply highlighting is (IMO) a thing called "Rainbow
    Braces" or "Bracket Pair Colorization" I recently learned about: both
    braces of a matching pair get the same color, while other pairs get
    other colors. I have to say I like it quite a lot. It's in VS Code
    these days; possible there are implementations or extensions for other >editors and IDEs as well.

    VS Code also supports ‘semantic highlighting’: Instead of simply highlighting syntax, highlight the same identifiers in the same colours,
    with the aim of helping you see them through the flow of the code.

    Simon
    --
    A complex system that works is invariably found to have evolved from a
    simple system that works.—John Gall

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From dn@21:1/5 to Thomas Passin on Sat Mar 18 10:00:11 2023
    On 18/03/2023 02.44, Thomas Passin wrote:
    On 3/17/2023 9:38 AM, Simon Ward wrote:
    On Fri, Mar 17, 2023 at 02:05:50PM +0100, Roel Schroeven wrote:
    Even better than simply highlighting is (IMO) a thing called "Rainbow
    Braces" or "Bracket Pair Colorization" I recently learned about: both
    braces of a matching pair get the same color, while other pairs get
    other colors. I have to say I like it quite a lot. It's in VS Code
    these days; possible there are implementations or extensions for
    other editors and IDEs as well.

    VS Code also supports ‘semantic highlighting’: Instead of simply
    highlighting syntax, highlight the same identifiers in the same
    colours, with the aim of helping you see them through the flow of the
    code.

    Even with a simple "Find" command I don't like that behavior, let alone
    for programming.  I find that all those other marked instances make it harder for me to read the surrounding material.  They are good for
    moving from one instance to another, but otherwise they get in the way
    for me.


    Haven't seen the coloring feature as-described. As the number of
    identifiers increased, suspect it would become gaudy or the color
    shading too subtle for my eyes.

    +1 'Busy pictures' can be distracting.


    That said, the syntax-highlighting can provide the occasional cue that something has gone-wrong. However, will I recognise it from the
    mis-coloring, or from other evidence first?


    The semantic point might be easily under-estimated. A 'simple find' may
    not be helpful - a web-search for Python turns-up irrelevant information
    about snakes!

    Regarding the tracing of an identifier: PyCharm has two features:
    - with cursor/caret on/at a single use of an identifier, it will
    highlight other usage, elsewhere in that module's code
    - (context menu) FindUsages will bring-up a two-pane window. The
    left-pane shows a tree-structure of the project, modules, etc, down to a listing of each code-line where the identifier is used. Highlighting one
    of those (at a time), will show the context around that particular
    line/usage. The right-pane is editable!

    The great thing about these features is that they are semantically-aware
    (is that a real term?). For example, if I were (foolish enough) to name
    an identifier "the", such searches will not 'hit' the same word inside a comment or docstring.

    Better still, the above motivation continues into a (context menu)
    Refactor facility. This, one might consider to be a semantic
    Find-Replace. Often employ when helping others to clarify their
    code/Code Review - or when I'm 'just coding' and have quickly defined an identifier without a lot of thought, but later (ie when come to make use
    of it) realise a better alternative and more descriptive name.

    --
    Regards,
    =dn

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Weatherby,Gerard@21:1/5 to All on Sat Mar 18 11:49:24 2023
    I send ~99% of Python coding time in PyCharm. Likewise, IntelliJ and Clion for Java and C++, respectively.

    Mostly use:
    Tab completion for variable names
    Letting PyCharm figure out imports for me, and cleaning up old, unused imports. Jumping to definitions of symbols.
    Tellling me I’ve made a type error before unit testing the code by highlighting it in yellow.
    Occasionally I’ll jump through the hoops to connect it to our Postgresql database to help verify SQL, but it’s not usually worth the trouble.

    For templating, I have two Python programs for starting new work. One generates a standalone Python program with the Python shebang, a __main__ which calls def main(), and logging and argparser intialization. The other generates a pyproject.toml /setup.
    cfg directory structure with a main.py referenced as a console script. from setup.cfg


    From: Python-list <python-list-bounces+gweatherby=uchc.edu@python.org> on behalf of dn via Python-list <python-list@python.org>
    Date: Thursday, March 16, 2023 at 6:59 PM
    To: 'Python' <python-list@python.org>
    Subject: Friday finking: IDE 'macro expansions'
    *** Attention: This is an external email. Use caution responding, opening attachments or clicking on links. ***

    It is a long, long, time since I've thrown one of these into the
    maelstrom of our musings.
    (have the nightmares receded?)


    Do you make use of your IDE's expansionist tendencies, and if-so, which
    ones?


    NB this is where vi/emacs enthusiasts start chuckling (polite term for
    'insane cackling'). Hence the question's limitation to IDEs, cf 'editors'! Also: I'm talking 'PyCharm' because of the story, but others use Codium, Sublime Text, etc - which presumably offer equivalent features.


    Was helping a friend install PyCharm. Jumped into the Settings. Isn't it incredible how many there are?

    Idly noted that there are two short-cut or macro-expansion types of
    facilities:
    - Postfix Completion, (nothing to do with email or polish notation) and
    - Live Templates (again, we're not talking about jinja2)


    With both, one types an abbreviated-name and the IDE will expand it into appropriate code. For (LiveTemplate) example, typing compli and pressing
    Tab induces PyCharm to add the following to the program[me]:

    [ ! for ! in !drop-down menu! if ! ]

    It offers further typo-saving through the drop-down menu which lists a
    bunch of likely (iterable) candidates from amongst previously-written
    code. The action continues after selecting from the menu, by inviting completion of the other ("!") placeholders, in-turn.


    I haven't made use of such a tool, to-date - OK, yes, I have practised a
    high typing-speed (and accuracy). Puff, puff...

    Also, at the time, I'm thinking in 'code', rather than about what tool
    might implement said ideas.


    Do you make use of such expansionist-tendencies?

    Do you make use of other powerful features within the IDE, or are its
    editor functionalities employed at pretty-much the NotePad level?



    Web.Refs: https://urldefense.com/v3/__https://www.jetbrains.com/help/pycharm/settings-postfix-completion.html__;!!Cn_UX_p3!l5XlkM7xExYMxpwFOxIvLPLSWPm_iu_aRv0WpnvCW2353FzsFjuJKfOYr-rCsnE915Rk59u6F4CgKPuF7fWLqicNTA$<https://urldefense.com/v3/__https:/www.jetbrains.
    com/help/pycharm/settings-postfix-completion.html__;!!Cn_UX_p3!l5XlkM7xExYMxpwFOxIvLPLSWPm_iu_aRv0WpnvCW2353FzsFjuJKfOYr-rCsnE915Rk59u6F4CgKPuF7fWLqicNTA$>
    https://urldefense.com/v3/__https://www.jetbrains.com/help/pycharm/using-live-templates.html*live_templates_types__;Iw!!Cn_UX_p3!l5XlkM7xExYMxpwFOxIvLPLSWPm_iu_aRv0WpnvCW2353FzsFjuJKfOYr-rCsnE915Rk59u6F4CgKPuF7fUOn2vrzA$<https://urldefense.com/v3/__https:
    /www.jetbrains.com/help/pycharm/using-live-templates.html*live_templates_types__;Iw!!Cn_UX_p3!l5XlkM7xExYMxpwFOxIvLPLSWPm_iu_aRv0WpnvCW2353FzsFjuJKfOYr-rCsnE915Rk59u6F4CgKPuF7fUOn2vrzA$>
    --
    Regards,
    =dn
    -- https://urldefense.com/v3/__https://mail.python.org/mailman/listinfo/python-list__;!!Cn_UX_p3!l5XlkM7xExYMxpwFOxIvLPLSWPm_iu_aRv0WpnvCW2353FzsFjuJKfOYr-rCsnE915Rk59u6F4CgKPuF7fUQeq7a_w$<https://urldefense.com/v3/__https:/mail.python.org/mailman/listinfo/
    python-list__;!!Cn_UX_p3!l5XlkM7xExYMxpwFOxIvLPLSWPm_iu_aRv0WpnvCW2353FzsFjuJKfOYr-rCsnE915Rk59u6F4CgKPuF7fUQeq7a_w$>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From 2QdxY4RzWzUUiLuE@potatochowder.com@21:1/5 to Gerard" on Sat Mar 18 08:27:53 2023
    On 2023-03-18 at 11:49:24 +0000,
    "Weatherby,Gerard" <gweatherby@uchc.edu> wrote:

    For templating, I have two Python programs for starting new work. One generates a standalone Python program with the Python shebang, a
    __main__ which calls def main(), and logging and argparser
    intialization. The other generates a pyproject.toml /setup.cfg
    directory structure with a main.py referenced as a console
    script. from setup.cfg

    You don't describe the process for using those programs, but if you
    "have two Python programs," then it sounds like you're *not* using the IDE/editor for that.

    (I'm not judging, I'm trying to relate your answer to dn's original
    question.)

    For an opposing view, I'm much more likely to copy an old project (at
    the command line, often with sed) and then use my editor to morph it
    into a new project. IME, unless there's an imposed process, those
    templates and programs tend to experience bitrot, whereas going back to
    an old program gives me the chance to keep it up to date w.r.t. what
    I've learned more recently, which helps reinforce said learning.

    From: Python-list <python-list-bounces+gweatherby=uchc.edu@python.org> on behalf of dn via Python-list <python-list@python.org>
    Date: Thursday, March 16, 2023 at 6:59 PM
    To: 'Python' <python-list@python.org>
    Subject: Friday finking: IDE 'macro expansions'
    *** Attention: This is an external email. Use caution responding, opening attachments or clicking on links. ***

    It is a long, long, time since I've thrown one of these into the
    maelstrom of our musings.
    (have the nightmares receded?)


    Do you make use of your IDE's expansionist tendencies, and if-so, which
    ones?

    [...]

    --
    I can eat glass, it does not hurt me.
    Dan Sommers, http://www.tombstonezero.net/dan

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From dn@21:1/5 to 2QdxY4RzWzUUiLuE@potatochowder.com on Sun Mar 19 12:11:07 2023
    On 19/03/2023 01.27, 2QdxY4RzWzUUiLuE@potatochowder.com wrote:
    On 2023-03-18 at 11:49:24 +0000,
    "Weatherby,Gerard" <gweatherby@uchc.edu> wrote:

    For templating, I have two Python programs for starting new work. One
    generates a standalone Python program with the Python shebang, a
    __main__ which calls def main(), and logging and argparser
    intialization. The other generates a pyproject.toml /setup.cfg
    directory structure with a main.py referenced as a console
    script. from setup.cfg

    You don't describe the process for using those programs, but if you
    "have two Python programs," then it sounds like you're *not* using the IDE/editor for that.

    (I'm not judging, I'm trying to relate your answer to dn's original question.)

    It is a good example of a facility or 'power' of an IDE - even if
    there's room for more information...


    The team I'm currently assisting has decided to use Poetry.

    PyCharm will create a new project, populating basic files, more-or-less
    as @George described. In the same way, if one prefers a venv (etc)
    instead of a Poetry structure, PyCharm will set things up similarly.

    Accordingly, it saves a lot of time, fiddling-about creating a bunch of (basically) empty files and sub-dirs.

    (that said, there a plenty of operations which have a blank-project
    template which can be copied-in and renamed...)


    Continuing the story, let's say the project calls for a PyPi-based*
    library, eg more_itertools, or there's a team 'standard', eg pytest;
    then these can be selected from a PyCharm-provided list (no need to go
    to PyPi to download) AND that operation will also be reflected in the pyproject.toml file.

    * cf one from the PSL

    In other words, the build file has been created and
    continually-maintained, by the IDE, ready for when the project is to be uploaded to a library or exported to target-machines; cf the 'tradition'
    of an extra, last, and not looked-forward-to, step in the process!


    For an opposing view, I'm much more likely to copy an old project (at
    the command line, often with sed) and then use my editor to morph it
    into a new project. IME, unless there's an imposed process, those
    templates and programs tend to experience bitrot, whereas going back to
    an old program gives me the chance to keep it up to date w.r.t. what
    I've learned more recently, which helps reinforce said learning.

    Yes...
    (guilty as charged!)

    Equally, may promulgate old habits and a lower-quality (related to the
    depth of learning, back-then cf 'now').

    --
    Regards,
    =dn

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)