Skip to content

Adding typing and get_sensor_nodes()#3

Merged
LazyTarget merged 4 commits intomainfrom
feature/typing-and-sensor-nodes-grouping
Mar 8, 2025
Merged

Adding typing and get_sensor_nodes()#3
LazyTarget merged 4 commits intomainfrom
feature/typing-and-sensor-nodes-grouping

Conversation

@LazyTarget
Copy link
Owner

@LazyTarget LazyTarget commented Mar 8, 2025

Summary by Sourcery

Adds type annotations to the project and introduces a new method, get_sensor_nodes(), to retrieve sensor data organized by computer.

New Features:

  • Adds get_sensor_nodes() method to retrieve sensor data organized by computer.
  • Introduces SensorNode and DataNode types for representing sensor data and data tree nodes, respectively.

@sourcery-ai
Copy link

sourcery-ai bot commented Mar 8, 2025

Reviewer's Guide by Sourcery

This pull request introduces typing, adds a method to retrieve sensor nodes, and integrates mypy into the linting process. The get_sensor_nodes method retrieves sensor data from the OpenHardwareMonitor API and structures it by computer. Type hints and TypedDicts were added to improve code clarity and maintainability. The linting workflow was updated to include mypy checks.

No diagrams generated as the changes look simple and do not need a visual representation.

File-Level Changes

Change Details Files
Introduced type hints and a SensorNode TypedDict for improved code clarity and data structure definition.
  • Added type hints to the OpenHardwareMonitorAPI class, including the port parameter in __init__ and the return type of get_data.
  • Created SensorNode and DataNode TypedDicts to define the structure of the data returned by the API.
  • Added a SensorType enum to represent the different types of sensors.
  • Added type hints to the _parse_sensor_nodes method.
pyopenhardwaremonitor/api.py
pyopenhardwaremonitor/types.py
Implemented the get_sensor_nodes method to retrieve and parse sensor data, organizing it by computer.
  • Added the get_sensor_nodes method to the OpenHardwareMonitorAPI class.
  • Implemented the _parse_sensor_nodes method to recursively parse the data tree and extract sensor information.
  • The get_sensor_nodes method returns a dictionary where keys are computer names and values are lists of SensorNode objects.
pyopenhardwaremonitor/api.py
Configured mypy to run as part of the linting process.
  • Installed mypy as part of the linting dependencies.
  • Added a mypy check to the linting workflow.
.github/workflows/lint.yaml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!
  • Generate a plan of action for an issue: Comment @sourcery-ai plan on
    an issue to generate a plan of action for it.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@github-actions github-actions bot added ci/cd Actions/Pipelines or other Scripting changes enhancement New feature or request labels Mar 8, 2025
Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey @LazyTarget - I've reviewed your changes - here's some feedback:

Overall Comments:

  • Consider adding a more specific exception when the OpenHardwareMonitor isn't found.
  • The example code should be updated to reflect the new get_sensor_nodes API.
Here's what I looked at during the review
  • 🟢 General issues: all looks good
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟡 Complexity: 1 issue found
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@LazyTarget LazyTarget merged commit fa358f2 into main Mar 8, 2025
3 checks passed
@LazyTarget LazyTarget deleted the feature/typing-and-sensor-nodes-grouping branch March 8, 2025 07:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd Actions/Pipelines or other Scripting changes enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant