Developer
Adist319
ongadrian30@gmail.com
Performance
Key patterns and highlights from this developer's activity.
Breakdown of growth, maintenance, and fixes effort over time.
Bugs introduced vs. fixed over time.
No bugs introduced or fixed in this period.
Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.
Investment Quality reclassifies engineering effort based on bug attribution data. Commits identified as buggy origins (those that introduced bugs later fixed by someone) have their grow and maintenance time moved into the Wasted Time category. Their waste (fix commits) remains counted as productive. All other commits retain their standard classification: grow is productive, maintenance is maintenance, and waste (fixes) is productive.
The standard model classifies commits as Growth, Maintenance, or Fixes. Investment Quality adds a quality lens: a commit that introduced a bug is retrospectively counted as a poor investment — the engineering time spent on it was wasted because it ultimately required additional fix work. Fix commits (Fixes in the standard model) are reframed as productive, because fixing bugs is valuable work.
Currently computed client-side from commit and bug attribution data. Ideal server-side endpoint:
POST /v1/organizations/{orgId}/investment-quality
Content-Type: application/json
Request:
{
"startTime": "2025-01-01T00:00:00Z",
"endTime": "2025-12-31T23:59:59Z",
"bucketSize": "BUCKET_SIZE_MONTH",
"groupBy": ["repository_id" | "deliverer_email"]
}
Response:
{
"productivePct": 74,
"maintenancePct": 18,
"wastedPct": 8,
"buckets": [
{
"bucketStart": "2025-01-01T00:00:00Z",
"productive": 4.2,
"maintenance": 1.8,
"wasted": 0.6
}
]
}Latest analyzed commits from this developer.
| Hash | Message | Date | Files | Effort |
|---|---|---|---|---|
| 27106c2 | This commit introduces **support for `__new__.__defaults__` assignments** immediately following functional `namedtuple` definitions, enabling optional trailing fields in their constructors. It enhances the **type checker's binding logic** for both `collections.namedtuple` and `typing.NamedTuple` forms, ensuring this common Python idiom is correctly understood. This **new capability** improves **type checking accuracy** by aligning the type checker's behavior with Python's runtime semantics, effectively **fixing issue #2611**. The implementation involves detecting adjacent assignments and applying right-aligned defaults during namedtuple synthesis. This ensures that `namedtuple`s defined with this pattern are correctly analyzed, allowing for more flexible constructor calls. | Mar 25 | 5 | grow |
| 8d5fe4c | This commit provides a **bug fix** for the **static analysis engine** to correctly handle variables defined using the **walrus operator (`:=`)** within `if` statement conditions. Previously, the analyzer would incorrectly report `unbound-name` errors for such variables after the `if` block, as they were not properly registered in the base flow. The fix modifies the **binding and statement processing logic** in `pyrefly/lib/binding/stmt.rs` to evaluate the `if` test expression before branching, ensuring walrus-defined names are visible post-statement. This improves the accuracy of **type checking and code analysis**, preventing false positives for valid Python constructs and enhancing the reliability of the **diagnostic system**. | Mar 12 | 3 | maint |
| 70cb58d | This commit introduces **type checking enforcement** for Python's `__slots__` mechanism, resolving a semantic gap where undeclared attribute writes were not flagged. It now correctly emits a **`missing-attribute` error** when attempting to write to an attribute not specified in a class's `__slots__`, covering various declaration forms including `dataclass(slots=True)`. This **new capability** is implemented across **`pyrefly/lib/alt/attr.rs`** for external attribute writes and **`pyrefly/lib/alt/class/class_field.rs`** for instance attribute creation. Careful suppression logic is included for scenarios like custom `__setattr__` or unslotted ancestors, ensuring accurate **Python semantics**. This significantly improves the type safety and adherence to Python's `__slots__` behavior within the analyzer. | Mar 11 | 9 | grow |
| 6951b91 | This commit introduces a **WYSIWYG enhancement** to the **display of generic type arguments**, specifically for types utilizing default type parameters as defined by PEP 696. It **modifies the type rendering logic** within the `pyrefly_types` crate to omit trailing type arguments that match their default values, making displayed types more concise and "as written." A new `TArgs::display_count()` method was added to determine the effective number of arguments to show, impacting `fmt_targs` and other type output mechanisms. This **readability improvement** ensures that users see simplified representations like `Generator[str]` instead of `Generator[str, None, None]`, enhancing the clarity of type information throughout the system. | Mar 2 | 10 | grow |
| f3fffb3 | This commit **fixes a false positive `unbound-name` diagnostic** within the **flow analysis** system. Previously, `pyrefly` would incorrectly report a variable as uninitialized when it was assigned in a `try` block and a `NoReturn` function was called in the corresponding `except` block, particularly when this structure was nested inside an `if` statement. The **bug fix** modifies the `FlowStyle::merged()` function to correctly combine `MaybeInitialized` states and preserve termination keys, ensuring that `NoReturn` paths are properly recognized as always exiting. This **improves the accuracy of type checking** by preventing erroneous `unbound-name` errors in these specific control flow scenarios. | Feb 24 | 2 | waste |
| 6c5415f | This commit **fixes a bug** in `pyrefly`'s **type inference engine** where functions returning `TypeIs[T]` or `TypeGuard[T]` were incorrectly inferred to return their specific `TypeIs` or `TypeGuard` type instead of `bool`. The **type inference logic** within `expr_call_infer` in `pyrefly/lib/alt/call.rs` is updated to correctly convert these special types to `bool` when determining the return type of a call. This ensures that the **type checker** accurately processes the return values of such functions, improving the reliability of **type analysis** and **narrowing logic** for user code. New **test cases** were added to validate this correction. | Jan 23 | 3 | maint |
| a557539 | This commit introduces a **new capability** to display **type variable bounds, constraints, and default values** within `forall` types, significantly improving the precision of **type introspection and diagnostics**. It enhances the **`pyrefly_types` crate**'s formatting logic, specifically in `crates/pyrefly_types/src/types.rs`, ensuring that `reveal_type` now provides a complete and unambiguous representation of generic function signatures. This **fixes a long-standing issue** where critical type variable restrictions were previously omitted, leading to clearer understanding for users. The change impacts how generic types are presented in diagnostic output, making it easier to differentiate functions with similar but distinct type variable definitions. | Jan 22 | 6 | maint |
| d24d086 | This commit **fixes and enhances type narrowing for sequence patterns** within `match/case` statements, addressing issues where union types were not correctly filtered and captured variables were improperly typed. It introduces the `Sequence` type to the standard library and implements `IsSequence`/`IsNotSequence` operations to ensure the **type checker** accurately narrows types and correctly infers `list[T]` for star-captured variables like `*values`. This **bug fix and feature enhancement** significantly improves the **precision of type inference** for pattern matching, while also adhering to PEP 634 by explicitly excluding `str`, `bytes`, and `bytearray` from sequence pattern matching. | Jan 14 | 6 | grow |
| 6bef521 | This commit delivers a **bug fix** for the **PyRefly type solver** to ensure correct `TypeVar` resolution order within **union type aliases**. Previously, `TypeVar`s were collected and ordered incorrectly due to alphabetical sorting of union members, leading to misassigned type parameters during **type inference** for constructs like `Result[T, TE]`. The core change in `pyrefly/lib/alt/solve.rs` modifies the `tvars_to_tparams_for_type_alias` function to store and sort `TypeVar`s by their source location, preserving the user's intended order. This rectifies a critical issue in **type checking** for complex type aliases, preventing subtle but significant type mismatches. New test cases in `pyrefly/lib/test/type_alias.rs` validate the corrected behavior across various scenarios. | Jan 10 | 2 | waste |
| e7fc1fd | This commit **fixes an incorrect "unreachable" warning** in the **`pyrefly` static analyzer** related to **`for-else` statements**. Previously, the `else` clause was erroneously flagged as unreachable when the loop's iterable might be empty, even if the loop body itself always terminated. The **bug fix** corrects the control flow analysis logic within `pyrefly/lib/binding/scope.rs` to accurately determine branch reachability for these constructs. This change prevents false positive warnings, improving the analyzer's precision and developer experience. New test cases in `pyrefly/lib/test/flow_looping.rs` validate the correct reachability analysis for various `for-else` scenarios. | Jan 8 | 2 | waste |
| d8dc4ce | This commit **introduces a new metadata file**, `stubs_metadata.json`, within the `crates/pyrefly_bundled/third_party/` directory. This file serves as a central repository for documenting crucial source information about non-Typeshed stub packages bundled in the project. It includes details such as source repository URLs, PyPI links, license, author information, and bundling dates for these external stubs. This **new capability** significantly improves the project's ability to track and manage its **third-party stub dependencies**, enhancing transparency and maintainability for the `pyrefly_bundled` module. | Jan 7 | 1 | grow |
| e4bf8ee | This commit introduces a **feature enhancement** to **Pyrefly's type checker**, specifically improving **overload resolution error messages**. The `pyrefly/lib/alt/overload.rs` module is updated to display the actual argument types provided in a function call when no matching overload is found. This **resolves a usability issue** by providing clearer diagnostics, allowing users to immediately understand why an overload call failed without further investigation. Conformance tests in `conformance/third_party/conformance.exp` and new unit tests in `pyrefly/lib/test/overload.rs` validate this improved error reporting. | Oct 23 | 4 | grow |
| 3e8787b | This commit introduces a **new feature** to the **Language Server Protocol (LSP) hover functionality** within `pyrefly`, allowing users to inspect suppressed errors. Specifically, hovering over `# pyrefly: ignore` or `# type: ignore` comments will now display the diagnostics that are being ignored. This enhancement improves developer feedback by making hidden issues more discoverable, leveraging new utility functions in `crates/pyrefly_python/src/ignore.rs` for comment parsing and suppression retrieval. The change directly addresses user experience by providing immediate context for ignored code, making `pyrefly` more transparent and user-friendly. | Oct 20 | 3 | grow |
| 2f35751 | This commit introduces **support for `LiteralString`** within the type checker's handling of `format()`, `join()`, and `replace()` methods. It **enhances the type inference system** by modifying attribute lookup in `pyrefly/lib/alt/attr.rs` to bind these methods to `Type::LiteralString` and utilize overload selection. A new `LiteralString` variant is added to `InstanceKind` in `pyrefly/lib/alt/class/class_field.rs` to correctly represent and manage attributes for these instances. This **new capability** ensures more accurate type checking and completion for string operations involving `LiteralString` types, aligning the type checker with the Python typing specification. | Oct 6 | 3 | grow |
| a24d67b | This commit introduces a **new capability** to `pyrefly` by preventing the direct instantiation of **abstract classes**, aligning its behavior with Python's Abstract Base Classes (ABCs). It enhances the **runtime correctness** of the `pyrefly` interpreter by implementing checks within the `call_function` logic in `pyrefly/lib/alt/call.rs`. To support this, **class metadata** (`pyrefly/lib/alt/class/class_metadata.rs`) now stores information about abstract classes and their members, and `ClassField` (`pyrefly/lib/alt/class/class_field.rs`) tracks abstractness. This ensures that attempts to instantiate an abstract class will now correctly raise a `Bad Instantation Error`, providing clear feedback about the unfulfilled abstract members. New **conformance tests** have been added to validate this behavior. | Oct 4 | 11 | grow |
| b1b3ff0 | This commit introduces a **new capability** to the **Pyrefly sandbox**, enabling users to select a specific Python version (3.8-3.12) for code execution and type checking. It adds a **Python version selector dropdown** to the `Sandbox` UI, integrates this selection through the `pyrefly_wasm` layer, and updates the underlying `Playground` Rust logic to initialize with the chosen version. This enhancement allows users to easily observe how type checking behavior differs across various Python environments directly within the sandbox. | Aug 8 | 6 | grow |
| 75fa044 | This commit **fixes** a compliance issue in the **Pyrefly type checker** by enforcing that only the `total` keyword is valid when defining a `TypedDict`, aligning with PEP 589. Previously, invalid keywords were silently ignored, but now the system will raise a new `BadTypedDict` error. This **enhancement** to the **error reporting system** involves modifying the `infer_class_def` function in `pyrefly/lib/alt/class/class_metadata.rs` to validate `TypedDict` arguments. New **conformance tests** and **documentation** for the `bad-typed-dict` error are also included. This change improves the accuracy and user feedback of the **type checker** by providing explicit errors for non-compliant `TypedDict` definitions. | Jun 20 | 7 | waste |
| f32c44e | This commit provides a **bug fix** and **refactoring** for **dataclass handling** within the `pyrefly` project, specifically addressing issue #409. It **corrects the behavior of `InitVar` fields**, ensuring they are no longer erroneously treated as instance attributes, which aligns with Python's `dataclasses` module specification. The change introduces `is_init_var` methods in `ClassField` and `Annotation` and updates various methods in `pyrefly/lib/alt/class` to prevent access to `InitVar` fields as instance attributes. This impacts how dataclass members are resolved, synthesized, and iterated, preventing incorrect attribute access and improving the accuracy of type resolution for dataclasses. | Jun 16 | 8 | waste |
| 0e1e39c | This commit **refactors** the **file discovery logic** to move dotfile exclusion from the configurable `project_excludes` list to the core globbing mechanism. Specifically, the `pyrefly_util/src/globs.rs` module now includes a `should_include_file` function to inherently filter out dotfiles and non-Python files, which is then used by `resolve_path`. This change ensures that **dotfiles are always ignored** during file scanning, making the system more robust and preventing them from being processed even if `project_excludes` is overridden. The `default_project_excludes` in `pyrefly/lib/config/config.rs` is updated to reflect this core exclusion. This **maintenance** improvement enhances the reliability of file processing by embedding a fundamental Python import rule directly into the globbing utility. | Jun 3 | 2 | maint |
| 94a8c2d | This commit **fixes a bug** in the **dataclass type checking** logic within `pyrefly` where constructors incorrectly expected `InitVar[T]` arguments instead of the specified inner type `T`, violating PEP 557. The `ClassField::as_param()` method was updated to correctly detect `InitVar` types and extract their inner type for constructor parameter qualification. This **bug fix** resolves incorrect type errors for dataclasses utilizing `InitVar` fields, ensuring that `Data("value")` works correctly for `mode: InitVar[str]`. The change significantly improves the **type checker's accuracy** for Python dataclass definitions and is verified by new conformance tests. | May 30 | 5 | waste |
This commit introduces **support for `__new__.__defaults__` assignments** immediately following functional `namedtuple` definitions, enabling optional trailing fields in their constructors. It enhances the **type checker's binding logic** for both `collections.namedtuple` and `typing.NamedTuple` forms, ensuring this common Python idiom is correctly understood. This **new capability** improves **type checking accuracy** by aligning the type checker's behavior with Python's runtime semantics, effectively **fixing issue #2611**. The implementation involves detecting adjacent assignments and applying right-aligned defaults during namedtuple synthesis. This ensures that `namedtuple`s defined with this pattern are correctly analyzed, allowing for more flexible constructor calls.
This commit provides a **bug fix** for the **static analysis engine** to correctly handle variables defined using the **walrus operator (`:=`)** within `if` statement conditions. Previously, the analyzer would incorrectly report `unbound-name` errors for such variables after the `if` block, as they were not properly registered in the base flow. The fix modifies the **binding and statement processing logic** in `pyrefly/lib/binding/stmt.rs` to evaluate the `if` test expression before branching, ensuring walrus-defined names are visible post-statement. This improves the accuracy of **type checking and code analysis**, preventing false positives for valid Python constructs and enhancing the reliability of the **diagnostic system**.
This commit introduces **type checking enforcement** for Python's `__slots__` mechanism, resolving a semantic gap where undeclared attribute writes were not flagged. It now correctly emits a **`missing-attribute` error** when attempting to write to an attribute not specified in a class's `__slots__`, covering various declaration forms including `dataclass(slots=True)`. This **new capability** is implemented across **`pyrefly/lib/alt/attr.rs`** for external attribute writes and **`pyrefly/lib/alt/class/class_field.rs`** for instance attribute creation. Careful suppression logic is included for scenarios like custom `__setattr__` or unslotted ancestors, ensuring accurate **Python semantics**. This significantly improves the type safety and adherence to Python's `__slots__` behavior within the analyzer.
This commit introduces a **WYSIWYG enhancement** to the **display of generic type arguments**, specifically for types utilizing default type parameters as defined by PEP 696. It **modifies the type rendering logic** within the `pyrefly_types` crate to omit trailing type arguments that match their default values, making displayed types more concise and "as written." A new `TArgs::display_count()` method was added to determine the effective number of arguments to show, impacting `fmt_targs` and other type output mechanisms. This **readability improvement** ensures that users see simplified representations like `Generator[str]` instead of `Generator[str, None, None]`, enhancing the clarity of type information throughout the system.
This commit **fixes a false positive `unbound-name` diagnostic** within the **flow analysis** system. Previously, `pyrefly` would incorrectly report a variable as uninitialized when it was assigned in a `try` block and a `NoReturn` function was called in the corresponding `except` block, particularly when this structure was nested inside an `if` statement. The **bug fix** modifies the `FlowStyle::merged()` function to correctly combine `MaybeInitialized` states and preserve termination keys, ensuring that `NoReturn` paths are properly recognized as always exiting. This **improves the accuracy of type checking** by preventing erroneous `unbound-name` errors in these specific control flow scenarios.
This commit **fixes a bug** in `pyrefly`'s **type inference engine** where functions returning `TypeIs[T]` or `TypeGuard[T]` were incorrectly inferred to return their specific `TypeIs` or `TypeGuard` type instead of `bool`. The **type inference logic** within `expr_call_infer` in `pyrefly/lib/alt/call.rs` is updated to correctly convert these special types to `bool` when determining the return type of a call. This ensures that the **type checker** accurately processes the return values of such functions, improving the reliability of **type analysis** and **narrowing logic** for user code. New **test cases** were added to validate this correction.
This commit introduces a **new capability** to display **type variable bounds, constraints, and default values** within `forall` types, significantly improving the precision of **type introspection and diagnostics**. It enhances the **`pyrefly_types` crate**'s formatting logic, specifically in `crates/pyrefly_types/src/types.rs`, ensuring that `reveal_type` now provides a complete and unambiguous representation of generic function signatures. This **fixes a long-standing issue** where critical type variable restrictions were previously omitted, leading to clearer understanding for users. The change impacts how generic types are presented in diagnostic output, making it easier to differentiate functions with similar but distinct type variable definitions.
This commit **fixes and enhances type narrowing for sequence patterns** within `match/case` statements, addressing issues where union types were not correctly filtered and captured variables were improperly typed. It introduces the `Sequence` type to the standard library and implements `IsSequence`/`IsNotSequence` operations to ensure the **type checker** accurately narrows types and correctly infers `list[T]` for star-captured variables like `*values`. This **bug fix and feature enhancement** significantly improves the **precision of type inference** for pattern matching, while also adhering to PEP 634 by explicitly excluding `str`, `bytes`, and `bytearray` from sequence pattern matching.
This commit delivers a **bug fix** for the **PyRefly type solver** to ensure correct `TypeVar` resolution order within **union type aliases**. Previously, `TypeVar`s were collected and ordered incorrectly due to alphabetical sorting of union members, leading to misassigned type parameters during **type inference** for constructs like `Result[T, TE]`. The core change in `pyrefly/lib/alt/solve.rs` modifies the `tvars_to_tparams_for_type_alias` function to store and sort `TypeVar`s by their source location, preserving the user's intended order. This rectifies a critical issue in **type checking** for complex type aliases, preventing subtle but significant type mismatches. New test cases in `pyrefly/lib/test/type_alias.rs` validate the corrected behavior across various scenarios.
This commit **fixes an incorrect "unreachable" warning** in the **`pyrefly` static analyzer** related to **`for-else` statements**. Previously, the `else` clause was erroneously flagged as unreachable when the loop's iterable might be empty, even if the loop body itself always terminated. The **bug fix** corrects the control flow analysis logic within `pyrefly/lib/binding/scope.rs` to accurately determine branch reachability for these constructs. This change prevents false positive warnings, improving the analyzer's precision and developer experience. New test cases in `pyrefly/lib/test/flow_looping.rs` validate the correct reachability analysis for various `for-else` scenarios.
This commit **introduces a new metadata file**, `stubs_metadata.json`, within the `crates/pyrefly_bundled/third_party/` directory. This file serves as a central repository for documenting crucial source information about non-Typeshed stub packages bundled in the project. It includes details such as source repository URLs, PyPI links, license, author information, and bundling dates for these external stubs. This **new capability** significantly improves the project's ability to track and manage its **third-party stub dependencies**, enhancing transparency and maintainability for the `pyrefly_bundled` module.
This commit introduces a **feature enhancement** to **Pyrefly's type checker**, specifically improving **overload resolution error messages**. The `pyrefly/lib/alt/overload.rs` module is updated to display the actual argument types provided in a function call when no matching overload is found. This **resolves a usability issue** by providing clearer diagnostics, allowing users to immediately understand why an overload call failed without further investigation. Conformance tests in `conformance/third_party/conformance.exp` and new unit tests in `pyrefly/lib/test/overload.rs` validate this improved error reporting.
This commit introduces a **new feature** to the **Language Server Protocol (LSP) hover functionality** within `pyrefly`, allowing users to inspect suppressed errors. Specifically, hovering over `# pyrefly: ignore` or `# type: ignore` comments will now display the diagnostics that are being ignored. This enhancement improves developer feedback by making hidden issues more discoverable, leveraging new utility functions in `crates/pyrefly_python/src/ignore.rs` for comment parsing and suppression retrieval. The change directly addresses user experience by providing immediate context for ignored code, making `pyrefly` more transparent and user-friendly.
This commit introduces **support for `LiteralString`** within the type checker's handling of `format()`, `join()`, and `replace()` methods. It **enhances the type inference system** by modifying attribute lookup in `pyrefly/lib/alt/attr.rs` to bind these methods to `Type::LiteralString` and utilize overload selection. A new `LiteralString` variant is added to `InstanceKind` in `pyrefly/lib/alt/class/class_field.rs` to correctly represent and manage attributes for these instances. This **new capability** ensures more accurate type checking and completion for string operations involving `LiteralString` types, aligning the type checker with the Python typing specification.
This commit introduces a **new capability** to `pyrefly` by preventing the direct instantiation of **abstract classes**, aligning its behavior with Python's Abstract Base Classes (ABCs). It enhances the **runtime correctness** of the `pyrefly` interpreter by implementing checks within the `call_function` logic in `pyrefly/lib/alt/call.rs`. To support this, **class metadata** (`pyrefly/lib/alt/class/class_metadata.rs`) now stores information about abstract classes and their members, and `ClassField` (`pyrefly/lib/alt/class/class_field.rs`) tracks abstractness. This ensures that attempts to instantiate an abstract class will now correctly raise a `Bad Instantation Error`, providing clear feedback about the unfulfilled abstract members. New **conformance tests** have been added to validate this behavior.
This commit introduces a **new capability** to the **Pyrefly sandbox**, enabling users to select a specific Python version (3.8-3.12) for code execution and type checking. It adds a **Python version selector dropdown** to the `Sandbox` UI, integrates this selection through the `pyrefly_wasm` layer, and updates the underlying `Playground` Rust logic to initialize with the chosen version. This enhancement allows users to easily observe how type checking behavior differs across various Python environments directly within the sandbox.
This commit **fixes** a compliance issue in the **Pyrefly type checker** by enforcing that only the `total` keyword is valid when defining a `TypedDict`, aligning with PEP 589. Previously, invalid keywords were silently ignored, but now the system will raise a new `BadTypedDict` error. This **enhancement** to the **error reporting system** involves modifying the `infer_class_def` function in `pyrefly/lib/alt/class/class_metadata.rs` to validate `TypedDict` arguments. New **conformance tests** and **documentation** for the `bad-typed-dict` error are also included. This change improves the accuracy and user feedback of the **type checker** by providing explicit errors for non-compliant `TypedDict` definitions.
This commit provides a **bug fix** and **refactoring** for **dataclass handling** within the `pyrefly` project, specifically addressing issue #409. It **corrects the behavior of `InitVar` fields**, ensuring they are no longer erroneously treated as instance attributes, which aligns with Python's `dataclasses` module specification. The change introduces `is_init_var` methods in `ClassField` and `Annotation` and updates various methods in `pyrefly/lib/alt/class` to prevent access to `InitVar` fields as instance attributes. This impacts how dataclass members are resolved, synthesized, and iterated, preventing incorrect attribute access and improving the accuracy of type resolution for dataclasses.
This commit **refactors** the **file discovery logic** to move dotfile exclusion from the configurable `project_excludes` list to the core globbing mechanism. Specifically, the `pyrefly_util/src/globs.rs` module now includes a `should_include_file` function to inherently filter out dotfiles and non-Python files, which is then used by `resolve_path`. This change ensures that **dotfiles are always ignored** during file scanning, making the system more robust and preventing them from being processed even if `project_excludes` is overridden. The `default_project_excludes` in `pyrefly/lib/config/config.rs` is updated to reflect this core exclusion. This **maintenance** improvement enhances the reliability of file processing by embedding a fundamental Python import rule directly into the globbing utility.
This commit **fixes a bug** in the **dataclass type checking** logic within `pyrefly` where constructors incorrectly expected `InitVar[T]` arguments instead of the specified inner type `T`, violating PEP 557. The `ClassField::as_param()` method was updated to correctly detect `InitVar` types and extract their inner type for constructor parameter qualification. This **bug fix** resolves incorrect type errors for dataclasses utilizing `InitVar` fields, ensuring that `Data("value")` works correctly for `mode: InitVar[str]`. The change significantly improves the **type checker's accuracy** for Python dataclass definitions and is verified by new conformance tests.
Commit activity distribution by hour and day of week. Shows when this developer is most active.
Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.