Klipper3d / klipper

Klipper is a 3d-printer firmware
GNU General Public License v3.0
9.34k stars 5.28k forks source link

config: Allow config includes to use subfolder globs #6375

Open bdistin opened 11 months ago

bdistin commented 11 months ago

This has been a minor change I have been using for a while to keep my config well organized/modular.

[include hardware/**/*.cfg]
[include macros/**/*.cfg]

You can see my use of it in action here: https://github.com/bdistin/v2.3231_config/

github-actions[bot] commented 10 months ago

Thank you for your contribution to Klipper. Unfortunately, a reviewer has not assigned themselves to this GitHub Pull Request. All Pull Requests are reviewed before merging, and a reviewer will need to volunteer. Further information is available at: https://www.klipper3d.org/CONTRIBUTING.html

There are some steps that you can take now:

  1. Perform a self-review of your Pull Request by following the steps at: https://www.klipper3d.org/CONTRIBUTING.html#what-to-expect-in-a-review If you have completed a self-review, be sure to state the results of that self-review explicitly in the Pull Request comments. A reviewer is more likely to participate if the bulk of a review has already been completed.
  2. Consider opening a topic on the Klipper Discourse server to discuss this work. The Discourse server is a good place to discuss development ideas and to engage users interested in testing. Reviewers are more likely to prioritize Pull Requests with an active community of users.
  3. Consider helping out reviewers by reviewing other Klipper Pull Requests. Taking the time to perform a careful and detailed review of others work is appreciated. Regular contributors are more likely to prioritize the contributions of other regular contributors.

Unfortunately, if a reviewer does not assign themselves to this GitHub Pull Request then it will be automatically closed. If this happens, then it is a good idea to move further discussion to the Klipper Discourse server. Reviewers can reach out on that forum to let you know if they are interested and when they are available.

Best regards, ~ Your friendly GitIssueBot

PS: I'm just an automated script, not a human being.

Arksine commented 10 months ago

I added a review comment to take care of the bot. It would be possible check the interpreter version and enable recursive blobs for Python >= 3.5. The final decision to merge would be up to Kevin.

bdistin commented 10 months ago

I added a review comment to take care of the bot. It would be possible check the interpreter version and enable recursive blobs for Python >= 3.5. The final decision to merge would be up to Kevin.

Oh, apologies. I think I saw Kevin do a similar version check in another PR so I think I can update the PR to check the version. Thanks for the review. Didn't even think to check dep requirements.

Arksine commented 10 months ago

Something like the following should work:

if sys.version_info >= (3, 5):
    include_filenames = glob.glob(include_glob, recursive=True)
else:
    include_filenames = glob.glob(include_glob)

In addition, we probably need to tweak the documentation to indicate that recursive globs only work on Python 3.

bdistin commented 10 months ago

Something like the following should work:

if sys.version_info >= (3, 5):
    include_filenames = glob.glob(include_glob, recursive=True)
else:
    include_filenames = glob.glob(include_glob)

In addition, we probably need to tweak the documentation to indicate that recursive globs only work on Python 3.

Apologies for the noob question. (python isn't really one of my languages) But in your example, you don't hoist include_filenames, but I see other places in the code where variables are hoisted. Does Python (or only some versions of Python) have block-level scoping? Or is my hoist unnecessary code?

github-actions[bot] commented 10 months ago

Thank you for your contribution to Klipper. Unfortunately, a reviewer has not assigned themselves to this GitHub Pull Request. All Pull Requests are reviewed before merging, and a reviewer will need to volunteer. Further information is available at: https://www.klipper3d.org/CONTRIBUTING.html

There are some steps that you can take now:

  1. Perform a self-review of your Pull Request by following the steps at: https://www.klipper3d.org/CONTRIBUTING.html#what-to-expect-in-a-review If you have completed a self-review, be sure to state the results of that self-review explicitly in the Pull Request comments. A reviewer is more likely to participate if the bulk of a review has already been completed.
  2. Consider opening a topic on the Klipper Discourse server to discuss this work. The Discourse server is a good place to discuss development ideas and to engage users interested in testing. Reviewers are more likely to prioritize Pull Requests with an active community of users.
  3. Consider helping out reviewers by reviewing other Klipper Pull Requests. Taking the time to perform a careful and detailed review of others work is appreciated. Regular contributors are more likely to prioritize the contributions of other regular contributors.

Unfortunately, if a reviewer does not assign themselves to this GitHub Pull Request then it will be automatically closed. If this happens, then it is a good idea to move further discussion to the Klipper Discourse server. Reviewers can reach out on that forum to let you know if they are interested and when they are available.

Best regards, ~ Your friendly GitIssueBot

PS: I'm just an automated script, not a human being.