-
-
Notifications
You must be signed in to change notification settings - Fork 5.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
config: Allow config includes to use subfolder globs #6375
base: master
Are you sure you want to change the base?
Conversation
This has been a minor change I have been using for a while to keep my config well organized. I was using index files to include subfolders, but this is a cleaner solution. ``` [include hardware/**/*.cfg] [include macros/**/*.cfg] ``` Signed-off-by: Ben Distin <bdistin@gmail.com>
Signed-off-by: Ben Distin <bdistin@gmail.com>
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:
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, PS: I'm just an automated script, not a human being. |
klippy/configfile.py
Outdated
@@ -223,7 +223,7 @@ def _resolve_include(self, source_filename, include_spec, fileconfig, | |||
dirname = os.path.dirname(source_filename) | |||
include_spec = include_spec.strip() | |||
include_glob = os.path.join(dirname, include_spec) | |||
include_filenames = glob.glob(include_glob) | |||
include_filenames = glob.glob(include_glob, recursive=True) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The recursive
argument for glob.glob()
was added in Python 3.5. AFAIK Klipper still supports running on Python 2.7, so this would be a breaking change.
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. |
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. |
Signed-off-by: Ben Distin <bdistin@gmail.com>
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? |
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:
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, PS: I'm just an automated script, not a human being. |
This has been a minor change I have been using for a while to keep my config well organized/modular.
You can see my use of it in action here: https://github.com/bdistin/v2.3231_config/