Skip to content

Conversation

@HairlessVillager
Copy link
Contributor

@HairlessVillager HairlessVillager commented Aug 30, 2025

Summary

Extract the styles configuration logic from ConsoleRenderer.init into a dedicated configure_styles class method. This improves code readability and makes the styles setup logic reusable and testable.

  • Move colorama initialization and styles selection to configure_styles()
  • Add comprehensive docstring with args, returns, and raises sections
  • Remove noqa comment as method complexity is now reduced
  • Maintain existing behavior for colors and force_colors parameters

Pull Request Check List

  • Do not open pull requests from your main branch – use a separate branch!
    • There's a ton of footguns waiting if you don't heed this warning. You can still go back to your project, create a branch from your main branch, push it, and open the pull request from the new branch.
    • This is not a pre-requisite for your pull request to be accepted, but you have been warned.
  • Added tests for changed code.
    • The CI fails with less than 100% coverage.
  • New APIs are added to our typing tests in api.py.
  • Updated documentation for changed code.
    • New functions/classes have to be added to docs/api.rst by hand.
    • Changed/added classes/methods/functions have appropriate versionadded, versionchanged, or deprecated directives.
      • The next version is the second number in the current release + 1. The first number represents the current year. So if the current version on PyPI is 23.1.0, the next version is gonna be 23.2.0. If the next version is the first in the new year, it'll be 24.1.0.
  • Documentation in .rst and .md files is written using semantic newlines.
  • Changes (and possible deprecations) are documented in the changelog.
  • Consider granting push permissions to the PR branch, so maintainers can fix minor issues themselves without pestering you.

Extract the styles configuration logic from ConsoleRenderer.__init__
into a dedicated configure_styles class method. This improves code
readability and makes the styles setup logic reusable and testable.

- Move colorama initialization and styles selection to configure_styles()
- Add comprehensive docstring with args, returns, and raises sections
- Remove noqa comment as method complexity is now reduced
- Maintain existing behavior for colors and force_colors parameters
@HairlessVillager
Copy link
Contributor Author

HairlessVillager commented Aug 30, 2025

Docs CI said WARNING: py:class reference target not found: structlog.dev._Styles [ref.class]. Should I add this to docs?

Copy link
Owner

@hynek hynek left a comment

Choose a reason for hiding this comment

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

Thanks, your timing is impeccable!

I may jam on your work a bit further, but I've decided to make the usage of ConsoleRenderer more ergonomic, since everyone is using it in a way I never planned for.

My current plan is to offer the current renderer to the user and then change ConsoleRenderer to be amendable for mutation. Feel free to lmk what you think

@hynek hynek merged commit 9d4022c into hynek:main Sep 12, 2025
20 checks passed
@hynek
Copy link
Owner

hynek commented Sep 12, 2025

jftr the work happens in #749

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants