Skip to content

Core & Optional Modules — Make UrbanMapper more lightweight!#82

Merged
simonprovost merged 7 commits intomainfrom
refactor/optional_modules
Nov 11, 2025
Merged

Core & Optional Modules — Make UrbanMapper more lightweight!#82
simonprovost merged 7 commits intomainfrom
refactor/optional_modules

Conversation

@simonprovost
Copy link
Member

@simonprovost simonprovost commented Nov 10, 2025

Hi @soniacq & @fabiofelix,

Finally had time to make optional modules in UrbanMapper! As follows:

  • Introduces core vs optional modules to make UrbanMapper more lightweight. (Skrub, JGIS, LLM Pipeline gen. are optional; while Loader, Imputer, etc. are core).
  • Core modules remain mandatory; optional modules and their dependencies are now installable on demand — e.g.pip install urbanmapper[auctus_mixin].
  • Early tests suggest up to 100 fewer package installs and around ~5+ seconds faster setup.
  • Also took the opportunity to update the API reference section of the doc to highlight core modules and clearly mark optional ones. ~> See here in action
  • Simplified README to quickly direct users to the main documentation (avoid redundancy over-time). ~> See here in action.

Solving #79 !

Let me know if you have any changes for me to make please 🫡

Cheers

@simonprovost simonprovost self-assigned this Nov 10, 2025
@simonprovost simonprovost added documentation Improvements or additions to documentation enhancement New feature or request labels Nov 10, 2025
Copy link
Contributor

@fabiofelix fabiofelix left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @simonprovost, it seems like a good idea to separate these additional models from the main UM code. From my side, it could be merged. Let's wait for @soniacq reviews.

@simonprovost
Copy link
Member Author

Hey @simonprovost, it seems like a good idea to separate these additional models from the main UM code. From my side, it could be merged. Let's wait for @soniacq reviews.

Brills! Thanks a bunch @fabiofelix, yup waiting for Sonia

Copy link
Contributor

@soniacq soniacq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great contribution @simonprovost. The PR looks correct and adds great value in modularity and maintainability.
Just one comment: should we update the CI to distinguish core vs optional tests?
Thanks!

@simonprovost
Copy link
Member Author

Great contribution @simonprovost. The PR looks correct and adds great value in modularity and maintainability. Just one comment: should we update the CI to distinguish core vs optional tests? Thanks!

Thanks so much :) That’s a good point indeed. I think we can either leave it as is for now — if the CI gets too long in the future, we’ll already know how to improve it — or, alternatively, make the optional module tests run only when those modules are changed. What do you prefer?

I don’t have strong preferences and I’m not sure how feasible it is, but I imagine it should be doable.

Let me know :)

Cheers

Copy link
Contributor

@soniacq soniacq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah. That makes sense (second option). For now, we can leave it as is for now and proceed with the merge.
Thanks!

@simonprovost simonprovost merged commit 45b4603 into main Nov 11, 2025
11 checks passed
@simonprovost simonprovost deleted the refactor/optional_modules branch November 11, 2025 23:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants