Skip to content

Split protected member diagnostics from no-access - #4537

Closed
ting-hong-shieh wants to merge 6 commits into
meta:mainfrom
ting-hong-shieh:fix/3659-private-usage
Closed

ting-hong-shieh wants to merge 6 commits into
meta:mainfrom
ting-hong-shieh:fix/3659-private-usage

Conversation

@ting-hong-shieh

Copy link
Copy Markdown
Contributor

Summary

  • add a dedicated private-usage error kind for protected class members
  • allow single-underscore member access from the defining class and subclasses
  • keep double-underscore private attributes under no-access
  • map Pyright's reportPrivateUsage to private-usage and document the new diagnostic

Root cause

The Pyright migration mapped reportPrivateUsage to no-access, even though no-access only checked name-mangled double-underscore attributes. This made the migrated setting affect an unrelated diagnostic without enforcing protected-member access.

User impact

Projects migrating from Pyright can configure protected-member checks independently. Disabling no-access no longer disables reportPrivateUsage behavior.

Testing

  • cargo test protected_attribute
  • cargo test private_attribute
  • cargo test test_report_private_usage_mapping
  • formatter and Clippy through test.py
  • full Pyrefly library suite: 7,862 passed and 3 ignored; the sandbox-blocked IPC tests passed when rerun with IPC permissions

Fixes #3659

Map Pyright reportPrivateUsage to a dedicated error kind so disabling no-access no longer hides protected-member checks.
@meta-cla meta-cla Bot added the cla signed label Aug 13, 2026
@ting-hong-shieh
ting-hong-shieh marked this pull request as ready for review August 13, 2026 08:40
@meta-codesync

meta-codesync Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

This pull request has been imported. If you are a Meta employee, you can view this in D115850858. (Because this pull request was imported automatically, there will not be any future comments.)

@ting-hong-shieh

Copy link
Copy Markdown
Contributor Author

The Meta Builds & Tests check is currently failing, but the internal failure details are not accessible to external contributors. The local formatter, Clippy, targeted regressions, and Pyrefly library suite passed. Could someone with access share the failing test or log snippet so I can address it? Thanks!

@ting-hong-shieh

Copy link
Copy Markdown
Contributor Author

Following up on the internal Builds & Tests failure — I think I've found a likely cause, so this may not need anyone to dig out the log.

PrivateUsage isn't listed in default_severity, so it falls through to _ => Severity::Error, and parent_kind returns None for it. The new diagnostic is therefore an error by default for every project, and it fires on any obj._protected access from outside the defining class — ordinary practice inside a library's own internals.

Measured by checking polars 1.43.2's own source (207 files) as a project, building both sides from this checkout so the version is held constant:

main (1.3.0-dev.1) this branch
private-usage 0 350
bad-return 318 318
missing-import 163 163
invalid-annotation 6 6
total 487 837

Every other category is identical, so the 350 are entirely attributable to this change. They aren't false positives either — they're helper modules reaching into a sibling class, which is what the check is designed to catch:

ERROR Protected attribute `_ldf` cannot be accessed outside of its defining class or a subclass [private-usage]
  --> src/polars/_utils/cloud.py:39:15

If a 200-file library produces 350 of these, a large internal codebase would produce far more, which would explain the failure without anything being wrong with the check itself.

If that's right, the fix is to default it to Severity::Ignore and let people opt in, the way explicit-any and the implicit-any-* kinds already work. That also matches the setting it maps from — Pyright has reportPrivateUsage at "none" in off, basic, and standard, and only "error" in strict:

| reportPrivateUsage | "none" | "none" | "none" | "error" |

The migration path would be unaffected: test_report_private_usage_mapping in this PR already asserts that a Pyright config with reportPrivateUsage set maps onto PrivateUsage independently of NoAccess, so projects arriving from Pyright with the rule enabled would still get it. That was the point of #3659.

Happy to push that change. But the default severity of a new diagnostic is a product decision rather than mine to assume, so I'll wait for a maintainer to say which way you want it — and if the internal failure turns out to be something else, a log snippet would still be welcome.

Disclosure, per the AI Usage section of CONTRIBUTING.md: the measurements above and this comment were produced by an AI agent (Claude Code) working in my checkout. I reviewed them before posting.

@github-actions

This comment has been minimized.

@github-actions github-actions Bot added the stale label Sep 3, 2026
Comment thread website/docs/error-kinds.mdx Outdated
f(name="test", **opts) # E: Multiple values for argument `name`
```

## private-usage

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Comment thread pyrefly/lib/alt/solve.rs Outdated
}
_ => None,
},
_ => None,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I believe this will cause pyrefly to emit an error whenever value_type isn't a recognized Type, because found_declaration will stay false and we'll continue on to reporting an error.

Comment thread pyrefly/lib/alt/solve.rs Outdated
) {
return;
}
if Ast::is_protected_attr(&expect.attr.id) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nit: This is sort of hard to follow because it adds an early return that duplicates the structure of the existing no-access check. IMO it would be more readable to do something like:

  1. share the code for computing the class_idx, class_binding, and owner
  2. do the appropriate check depending on whether expect.attr.id is protected or private and either return early or compute an error kind and message
  3. share the has_static_attr check and error reporting.

Make protected-member diagnostics opt-in and require a concrete class declaration before reporting access errors. Share owner lookup and error reporting while preserving private-member checks.
@github-actions github-actions Bot added size/l and removed size/m labels Oct 28, 2026
@github-actions

This comment has been minimized.

Bind receiver type expressions before copying access checks so quoted cast types are preserved. Treat the public NamedTuple helper APIs as public without weakening checks for ordinary classes.

Signed-off-by: Ting-Hong Shieh <32212900+ting-hong-shieh@users.noreply.github.com>
@rchen152

Copy link
Copy Markdown
Contributor

Btw you might have noticed that we're testing out a new PR turn tracking system (the "waiting-for-author" label). Whenever you're ready for another review, you can hit "re-request review" or @ me in a comment, and hopefully the label will flip to "waiting-for-reviewer".

@github-actions

This comment has been minimized.

@rchen152 rchen152 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks! I think this is pretty close. I found a couple issues from looking at the mypy primer delta and comparing with pyright's behavior, and I'd prefer the name protected-access for this error kind. Hopefully all pretty quick fixes!

Comment thread website/docs/error-kinds.mdx Outdated
f(name="test", **opts) # E: Multiple values for argument `name`
```

## private-usage

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thinking about this some more, I think protected-access would be a better name than private-usage. It would better mirror our existing no-access error kind and fits well with the "protected attribute" terminology in the error message and documentation.

Comment thread pyrefly/lib/alt/solve.rs
if let Some(class_idx) = expect.class_idx {
let class_binding = self.get_idx(class_idx);
let Some(owner) = class_binding.0.as_ref() else {
let owner = expect

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looking at the mypy primer delta, I found one case where the new check fires incorrectly:

  class _CodeWriter:
      def indent(self):
          class Indenter:
              def __exit__(_, *args):
                  assert self._indent > 0   # flagged

(from https://github.com/tornadoweb/tornado/blob/57deb98e96e13c5887ddde237c266fa4872ae46d/tornado/template.py#L765).

IMO this should be accepted. I believe the fix would be to change PrivateAttributeAccessCheck to take the entire stack of class keys (you'll probably have to add a method to Scopes to expose this), so that check_private_attribute_access can check all of them.

Comment thread pyrefly/lib/alt/solve.rs Outdated
.any(|ancestor| ancestor.class_object() == &member.defining_class)
})
});
if !inaccessible {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nit: might be a good idea to pull the protected attribute logic into a helper method at this point, since it'll likely get longer with handling of outer classes.

);

testcase!(
test_protected_attribute_from_stub,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

pyright suppresses reportPrivateUsage when the member is from a stub: https://github.com/microsoft/pyright/blob/e6d4bda989a07e384ed087ce73af5b6b4d69b64d/packages/pyright-internal/src/analyzer/checker.ts#L4685-L4689, so this differs from pyright. Was that intentional? My prior is that we should probably match pyright's behavior unless we have a reason not to, but I don't feel strongly about this and could be convinced otherwise :)

@github-actions github-actions Bot added size/xl and removed size/xl labels Oct 30, 2026
@github-actions

Copy link
Copy Markdown

Diff from mypy_primer, showing the effect of this PR on open source code:

============================================================
SUMMARY
============================================================
Total: +16558 new errors, -28 fixed errors
By preset: +0/-0 (default), +0/-0 (strict)

Projects with changes (117):
  pip: +74 -5
  bidict: +23 -0
  tornado: +86 -0
  psycopg: +71 -0
  mongo-python-driver: +501 -0
  starlette: +2 -0
  apprise: +1370 -0
  yarl: +101 -0
  pycryptodome: +24 -0
  packaging: +35 -0
  janus: +127 -0
  mkdocs: +33 -0
  cki-lib: +49 -0
  black: +3 -0
  PyWinCtl: +14 -0
  openlibrary: +82 -0
  rotki: +756 -0
  egglog-python: +14 -0
  pegen: +4 -0
  koda-validate: +4 -0
  graphql-core: +7 -0
  kopf: +57 -0
  pytest: +414 -0
  PyGithub: +141 -1
  artigraph: +64 -0
  flake8: +2 -0
  pyppeteer: +97 -0
  altair: +66 -0
  jax: +366 -0
  archinstall: +17 -0
  scipy: +40 -0
  python-chess: +20 -0
  urllib3: +271 -0
  cryptography: +90 -0
  httpx-caching: +3 -0
  scikit-learn: +281 -0
  spark: +68 -0
  cwltool: +26 -0
  prefect: +17 -0
  git-revise: +1 -0
  setuptools: +46 -0
  scikit-build-core: +9 -0
  pyinstrument: +0 -1
  freqtrade: +139 -0
  zipp: +1 -0
  pyproject-metadata: +1 -0
  pwndbg: +42 -0
  manticore: +157 -0
  schemathesis: +108 -0
  comtypes: +69 -0
  aiortc: +62 -0
  materialize: +13 -0
  asynq: +9 -0
  ppb-vector: +6 -0
  mitmproxy: +115 -0
  streamlit: +32 -0
  dulwich: +72 -0
  aioredis: +2 -0
  pytest-autoprofile: +16 -1
  cloud-init: +101 -0
  build: +11 -0
  vision: +2 -0
  pandera: +86 -0
  zulip: +13 -0
  hydra-zen: +30 -4
  strawberry: +27 -0
  stone: +46 -0
  steam.py: +234 -2
  aiohttp-devtools: +45 -0
  ibis: +25 -0
  bokeh: +100 -0
  beartype: +18 -0
  zope.interface: +207 -0
  bandersnatch: +36 -0
  ignite: +36 -0
  antidote: +1 -0
  static-frame: +1849 -7
  aiohttp: +103 -0
  pandas-stubs: +1 -0
  pywin32: +1 -0
  mypy: +102 -0
  rclip: +2 -0
  hydpy: +8 -0
  dragonchain: +43 -0
  sockeye: +5 -0
  pyodide: +14 -0
  pandas: +2975 -3
  anyio: +34 -0
  trio: +202 -0
  sphinx: +144 -0
  werkzeug: +31 -0
  pytensor: +35 -0
  meson: +58 -0
  websockets: +4 -0
  pytest-robotframework: +13 -0
  dd-trace-py: +179 -1
  core: +122 -0
  nox: +9 -0
  poetry: +265 -0
  jinja: +6 -0
  spack: +415 -0
  dedupe: +2 -0
  xarray: +497 -0
  speedrun.com_global_scoreboard_webapp: +36 -0
  ecosystem-analyzer: +24 -0
  kornia: +36 -0
  pydantic: +37 -0
  scrapy: +581 -0
  rich: +23 -0
  attrs: +14 -0
  pylox: +2 -0
  pylint: +28 -1
  cvxpy: +100 -0
  boostedblob: +7 -0
  optuna: +661 -0
  porcupine: +9 -0
  discord.py: +543 -2
============================================================

FULL DIFF DETAILS
------------------------------------------------------------

pip (https://github.com/pypa/pip)
+ ERROR src/pip/_internal/build_env/installer.py:194:28-43: Protected attribute `_link_collector` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_internal/cli/parser.py:163:25-41: Protected attribute `_update_defaults` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_internal/models/link.py:630:19-30: Protected attribute `_parsed_url` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_internal/operations/prepare.py:779:21-34: Protected attribute `_distribution` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_internal/operations/prepare.py:780:21-34: Protected attribute `_distribution` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_internal/operations/prepare.py:783:51-64: Protected attribute `_distribution` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_internal/resolution/resolvelib/candidates.py:476:80-85: Protected attribute `_ireq` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_internal/resolution/resolvelib/candidates.py:524:29-37: Protected attribute `_factory` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_internal/utils/misc.py:702:22-48: Protected attribute `_raise_backend_unavailable` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/cachecontrol/adapter.py:135:68-88: Protected attribute `_update_chunk_length` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/cachecontrol/caches/file_cache.py:145:22-25: Protected attribute `_fn` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/msgpack/fallback.py:98:24-31: Protected attribute `_unpack` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/msgpack/fallback.py:103:17-31: Protected attribute `_got_extradata` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/msgpack/fallback.py:104:39-53: Protected attribute `_get_extradata` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_ranges.py:133:36-40: Protected attribute `_key` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_ranges.py:552:27-33: Protected attribute `_above` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_ranges.py:553:27-33: Protected attribute `_below` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_ranges.py:578:31-37: Protected attribute `_above` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_ranges.py:581:31-37: Protected attribute `_below` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_ranges.py:601:23-29: Protected attribute `_above` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_ranges.py:602:23-29: Protected attribute `_below` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_ranges.py:622:27-33: Protected attribute `_above` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_ranges.py:625:27-33: Protected attribute `_below` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_ranges.py:811:23-29: Protected attribute `_above` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_ranges.py:815:23-29: Protected attribute `_below` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/_tokenizer.py:83:19-39: Protected attribute `_specifier_regex_str` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/metadata.py:593:26-30: Protected attribute `_raw` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/ranges.py:1693:32-46: Protected attribute `_has_arbitrary` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/ranges.py:1695:61-72: Protected attribute `_get_ranges` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/ranges.py:1706:60-70: Protected attribute `_to_ranges` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/ranges.py:1715:26-38: Protected attribute `_prereleases` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/ranges.py:1719:63-73: Protected attribute `_to_ranges` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/ranges.py:1724:38-50: Protected attribute `_prereleases` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/requirements.py:123:43-55: Protected attribute `_prereleases` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/specifiers.py:100:33-38: Protected attribute `_spec` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/specifiers.py:106:49-70: Protected attribute `_require_spec_version` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/specifiers.py:109:28-49: Protected attribute `_require_spec_version` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/specifiers.py:1051:53-63: Protected attribute `_to_ranges` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/packaging/specifiers.py:1141:29-48: Protected attribute `_from_specifier_set` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/pkg_resources/__init__.py:1900:17-26: Protected attribute `_register` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/pkg_resources/__init__.py:2921:11-26: Protected attribute `_reload_version` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/pkg_resources/__init__.py:3090:35-53: Protected attribute `_get_metadata_path` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/pkg_resources/__init__.py:3636:70-83: Protected attribute `_build_master` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/platformdirs/testing.py:76:21-49: Protected attribute `_append_app_name_and_version` cannot be accessed outside of its defining class or a subclass [protected-access]
- ERROR src/pip/_vendor/requests/auth.py:303:60-94: Unused `# type: ignore` comment [unused-type-ignore]
- ERROR src/pip/_vendor/requests/sessions.py:266:72-106: Unused `# type: ignore` comment [unused-type-ignore]
- ERROR src/pip/_vendor/requests/sessions.py:278:77-111: Unused `# type: ignore` comment [unused-type-ignore]
- ERROR src/pip/_vendor/requests/utils.py:1145:43-77: Unused `# type: ignore` comment [unused-type-ignore]
- ERROR src/pip/_vendor/requests/utils.py:1149:57-91: Unused `# type: ignore` comment [unused-type-ignore]
+ ERROR src/pip/_vendor/rich/console.py:386:23-36: Protected attribute `_enter_buffer` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/console.py:396:32-37: Protected attribute `_lock` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/console.py:397:55-62: Protected attribute `_buffer` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/console.py:398:35-42: Protected attribute `_buffer` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/console.py:404:41-55: Protected attribute `_render_buffer` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/console.py:406:23-35: Protected attribute `_exit_buffer` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/jupyter.py:50:24-38: Protected attribute `_render_buffer` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/live.py:36:28-33: Protected attribute `_lock` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/live.py:217:35-46: Protected attribute `_live_stack` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/live.py:245:33-44: Protected attribute `_live_stack` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/live.py:246:34-45: Protected attribute `_live_stack` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/progress.py:1446:22-28: Protected attribute `_reset` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/progress.py:1460:30-39: Protected attribute `_progress` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/progress.py:1502:18-24: Protected attribute `_reset` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/progress.py:1530:30-39: Protected attribute `_progress` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/style.py:30:16-31: Protected attribute `_set_attributes` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/style.py:31:24-35: Protected attribute `_attributes` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/syntax.py:234:20-28: Protected attribute `_padding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/table.py:442:20-26: Protected attribute `_cells` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/table.py:543:68-74: Protected attribute `_index` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/table.py:719:56-62: Protected attribute `_index` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/table.py:732:53-59: Protected attribute `_index` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/rich/text.py:1142:67-73: Protected attribute `_lines` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/urllib3/_collections.py:200:38-59: Protected attribute `_has_value_for_header` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/urllib3/connectionpool.py:898:51-77: Protected attribute `_prepare_for_method_change` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/urllib3/http2/probe.py:81:30-37: Protected attribute `_values` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/urllib3/http2/probe.py:82:29-35: Protected attribute `_reset` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/urllib3/poolmanager.py:471:59-85: Protected attribute `_prepare_for_method_change` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/urllib3/response.py:785:20-29: Protected attribute `_put_conn` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR src/pip/_vendor/urllib3/util/ssl_.py:474:22-58: Protected attribute `_validate_ssl_context_for_tls_in_tls` cannot be accessed outside of its defining class or a subclass [protected-access]

bidict (https://github.com/jab/bidict)
+ ERROR bidict/_base.py:85:34-39: Protected attribute `_fwdm` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:108:37-42: Protected attribute `_fwdm` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:118:35-40: Protected attribute `_invm` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:121:33-38: Protected attribute `_invm` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:157:37-42: Protected attribute `_fwdm` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:176:19-24: Protected attribute `_fwdm` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:181:19-24: Protected attribute `_fwdm` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:189:19-24: Protected attribute `_fwdm` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:190:15-35: Protected attribute `_fwdm_has_dict_views` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:762:51-56: Protected attribute `_fwdm` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:765:12-23: Protected attribute `_init_class` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:780:28-36: Protected attribute `_mapping` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:781:28-48: Protected attribute `_fwdm_has_dict_views` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:783:46-51: Protected attribute `_fwdm` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:783:58-67: Protected attribute `_viewname` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:792:88-96: Protected attribute `_mapping` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:792:97-117: Protected attribute `_fwdm_has_dict_views` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:793:45-53: Protected attribute `_mapping` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:793:54-59: Protected attribute `_fwdm` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_base.py:793:65-74: Protected attribute `_viewname` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_orderedbase.py:356:22-32: Protected attribute `_iternodes` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_orderedbase.py:402:38-43: Protected attribute `_iter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bidict/_orderedbase.py:411:19-24: Protected attribute `_iter` cannot be accessed outside of its defining class or a subclass [protected-access]

tornado (https://github.com/tornadoweb/tornado)
+ ERROR tornado/curl_httpclient.py:157:37-49: Protected attribute `_set_timeout` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/gen.py:906:10-24: Protected attribute `_register_task` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/gen.py:907:42-58: Protected attribute `_unregister_task` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/httpclient.py:218:42-51: Protected attribute `_DEFAULTS` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/httpclient.py:301:48-71: Protected attribute `_error_is_response_code` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/httpserver.py:288:22-33: Protected attribute `_parse_body` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/asyncio_test.py:137:33-52: Protected attribute `_ioloop_for_asyncio` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/asyncio_test.py:144:32-51: Protected attribute `_ioloop_for_asyncio` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/asyncio_test.py:148:33-52: Protected attribute `_ioloop_for_asyncio` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/asyncio_test.py:156:32-51: Protected attribute `_ioloop_for_asyncio` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/asyncio_test.py:224:39-47: Protected attribute `_waker_r` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/asyncio_test.py:225:39-47: Protected attribute `_waker_w` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/asyncio_test.py:243:25-45: Protected attribute `_thread_manager_task` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/curl_httpclient_test.py:234:38-49: Protected attribute `_curl_debug` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/curl_httpclient_test.py:248:38-49: Protected attribute `_curl_debug` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/curl_httpclient_test.py:258:34-45: Protected attribute `_curl_debug` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/iostream_test.py:1539:20-40: Protected attribute `_large_buf_threshold` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/iostream_test.py:1591:34-42: Protected attribute `_buffers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/iostream_test.py:1594:34-42: Protected attribute `_buffers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/iostream_test.py:1596:34-42: Protected attribute `_buffers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/iostream_test.py:1598:34-42: Protected attribute `_buffers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/iostream_test.py:1625:34-42: Protected attribute `_buffers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/iostream_test.py:1627:34-42: Protected attribute `_buffers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/iostream_test.py:1629:34-42: Protected attribute `_buffers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/iostream_test.py:1631:34-42: Protected attribute `_buffers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/iostream_test.py:1633:34-42: Protected attribute `_buffers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/iostream_test.py:1677:34-42: Protected attribute `_buffers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/locale_test.py:132:28-37: Protected attribute `_weekdays` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/locale_test.py:138:39-46: Protected attribute `_months` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/locale_test.py:144:43-50: Protected attribute `_months` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/locale_test.py:150:43-50: Protected attribute `_months` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/locks_test.py:184:37-45: Protected attribute `_waiters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/locks_test.py:188:35-43: Protected attribute `_waiters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/locks_test.py:275:37-45: Protected attribute `_waiters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/locks_test.py:327:39-47: Protected attribute `_waiters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/locks_test.py:331:37-45: Protected attribute `_waiters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/netutil_test.py:122:29-40: Protected attribute `_threadpool` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/netutil_test.py:123:30-41: Protected attribute `_threadpool` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:143:36-44: Protected attribute `_putters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:145:36-44: Protected attribute `_putters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:149:35-43: Protected attribute `_putters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:160:36-44: Protected attribute `_getters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:162:36-44: Protected attribute `_getters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:165:35-43: Protected attribute `_getters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:266:36-44: Protected attribute `_putters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:268:36-44: Protected attribute `_putters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:271:35-43: Protected attribute `_putters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:283:36-44: Protected attribute `_getters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:285:36-44: Protected attribute `_getters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/queues_test.py:288:35-43: Protected attribute `_getters` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/simple_httpclient_test.py:639:36-48: Protected attribute `_connections` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/simple_httpclient_test.py:687:38-57: Protected attribute `_save_configuration` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/simple_httpclient_test.py:690:25-47: Protected attribute `_restore_configuration` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/util_test.py:210:39-58: Protected attribute `_save_configuration` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/util_test.py:211:35-54: Protected attribute `_save_configuration` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/util_test.py:214:26-48: Protected attribute `_restore_configuration` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/util_test.py:215:21-43: Protected attribute `_restore_configuration` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/web_test.py:146:26-34: Protected attribute `_cookies` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/web_test.py:174:17-25: Protected attribute `_cookies` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/web_test.py:220:40-48: Protected attribute `_cookies` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/web_test.py:233:40-48: Protected attribute `_cookies` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/web_test.py:890:24-41: Protected attribute `_template_loaders` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/web_test.py:2005:55-69: Protected attribute `_static_hashes` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/web_test.py:3097:24-41: Protected attribute `_template_loaders` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/web_test.py:3175:24-41: Protected attribute `_template_loaders` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/test/websocket_test.py:342:24-41: Protected attribute `_template_loaders` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/testing.py:628:25-40: Protected attribute `_test_generator` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/testing.py:629:26-41: Protected attribute `_test_generator` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/testing.py:631:26-41: Protected attribute `_test_generator` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:315:33-45: Protected attribute `_body_future` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:316:30-42: Protected attribute `_body_future` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:317:30-42: Protected attribute `_body_future` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:1971:34-45: Protected attribute `_parse_body` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:1998:40-52: Protected attribute `_body_future` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:2174:16-36: Protected attribute `_stream_request_body` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:2581:21-37: Protected attribute `_request_summary` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:2625:61-73: Protected attribute `_body_future` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:2643:33-54: Protected attribute `_template_loader_lock` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:2644:46-63: Protected attribute `_template_loaders` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:2667:26-34: Protected attribute `_execute` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:2673:29-45: Protected attribute `_prepared_future` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/web.py:3963:29-39: Protected attribute `_ui_module` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/websocket.py:1002:31-45: Protected attribute `_detach_stream` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/websocket.py:1608:23-46: Protected attribute `_process_server_headers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/websocket.py:1611:53-72: Protected attribute `_receive_frame_loop` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tornado/websocket.py:1789:66-75: Protected attribute `_DEFAULTS` cannot be accessed outside of its defining class or a subclass [protected-access]

psycopg (https://github.com/psycopg/psycopg)
+ ERROR psycopg/psycopg/_column.py:25:46-55: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_base.py:255:39-48: Protected attribute `_sync_gen` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_base.py:348:46-55: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_base.py:380:27-36: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_base.py:455:50-59: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_base.py:487:72-81: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_base.py:527:72-81: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_base.py:555:39-48: Protected attribute `_sync_gen` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_base.py:595:39-48: Protected attribute `_sync_gen` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_base.py:612:39-48: Protected attribute `_sync_gen` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_base.py:622:39-48: Protected attribute `_sync_gen` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_base.py:670:39-48: Protected attribute `_sync_gen` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_connection_info.py:197:28-37: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_copy.py:155:29-40: Protected attribute `_try_cancel` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_copy.py:209:44-53: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_copy_async.py:154:35-46: Protected attribute `_try_cancel` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_copy_async.py:208:44-53: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_copy_base.py:100:70-79: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_cursor_base.py:208:45-61: Protected attribute `_communicate_gen` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_cursor_base.py:239:33-49: Protected attribute `_communicate_gen` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_cursor_base.py:244:33-43: Protected attribute `_fetch_gen` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_cursor_base.py:668:29-38: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_encodings.py:87:24-33: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_pipeline_base.py:166:72-81: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_pipeline_base.py:174:24-29: Protected attribute `_conn` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_pipeline_base.py:175:20-34: Protected attribute `_check_results` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_pipeline_base.py:176:20-32: Protected attribute `_set_results` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_preparing.py:200:29-40: Protected attribute `_deallocate` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/_typeinfo.py:250:14-20: Protected attribute `_added` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/connection.py:394:31-40: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/connection.py:584:51-63: Protected attribute `_from_record` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/connection.py:585:29-47: Protected attribute `_get_recover_query` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/connection_async.py:428:31-40: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/connection_async.py:641:57-69: Protected attribute `_from_record` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/connection_async.py:642:35-53: Protected attribute `_get_recover_query` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor.py:131:35-44: Protected attribute `_pipeline` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor.py:137:41-57: Protected attribute `_pipeline_nolock` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor.py:184:32-43: Protected attribute `_try_cancel` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor.py:340:28-37: Protected attribute `_pipeline` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor.py:343:44-53: Protected attribute `_pipeline` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor.py:343:54-64: Protected attribute `_fetch_gen` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor_async.py:131:35-44: Protected attribute `_pipeline` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor_async.py:137:47-63: Protected attribute `_pipeline_nolock` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor_async.py:184:38-49: Protected attribute `_try_cancel` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor_async.py:342:28-37: Protected attribute `_pipeline` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor_async.py:345:50-59: Protected attribute `_pipeline` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/cursor_async.py:345:60-70: Protected attribute `_fetch_gen` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/generators.py:324:59-68: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/generators.py:370:59-68: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/pq/pq_ctypes.py:155:29-48: Protected attribute `_options_from_array` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/pq/pq_ctypes.py:1144:19-33: Protected attribute `_ensure_pgconn` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/pq/pq_ctypes.py:1149:55-66: Protected attribute `_pgconn_ptr` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/pq/pq_ctypes.py:1161:19-33: Protected attribute `_ensure_pgconn` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/pq/pq_ctypes.py:1166:58-69: Protected attribute `_pgconn_ptr` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/pq/pq_ctypes.py:1179:23-37: Protected attribute `_ensure_pgconn` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/pq/pq_ctypes.py:1183:27-38: Protected attribute `_pgconn_ptr` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/pq/pq_ctypes.py:1213:23-37: Protected attribute `_ensure_pgconn` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/pq/pq_ctypes.py:1215:27-38: Protected attribute `_pgconn_ptr` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/pq/pq_ctypes.py:1239:23-37: Protected attribute `_ensure_pgconn` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/rows.py:136:30-39: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/rows.py:242:22-31: Protected attribute `_encoding` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/types/multirange.py:65:18-27: Protected attribute `_registry` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/types/multirange.py:66:18-27: Protected attribute `_registry` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg/psycopg/types/range.py:69:18-27: Protected attribute `_registry` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg_pool/psycopg_pool/base.py:218:35-42: Protected attribute `_jitter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg_pool/psycopg_pool/pool.py:995:14-29: Protected attribute `_add_connection` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg_pool/psycopg_pool/pool.py:1007:14-32: Protected attribute `_return_connection` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg_pool/psycopg_pool/pool.py:1021:14-26: Protected attribute `_shrink_pool` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg_pool/psycopg_pool/pool_async.py:1079:20-35: Protected attribute `_add_connection` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg_pool/psycopg_pool/pool_async.py:1091:20-38: Protected attribute `_return_connection` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR psycopg_pool/psycopg_pool/pool_async.py:1105:20-32: Protected attribute `_shrink_pool` cannot be accessed outside of its defining class or a subclass [protected-access]

mongo-python-driver (https://github.com/mongodb/mongo-python-driver)
+ ERROR bson/__init__.py:367:38-50: Protected attribute `_decoder_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bson/__init__.py:589:31-43: Protected attribute `_decoder_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bson/__init__.py:590:49-61: Protected attribute `_decoder_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bson/__init__.py:941:23-35: Protected attribute `_type_marker` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bson/__init__.py:984:50-62: Protected attribute `_encoder_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bson/__init__.py:985:45-57: Protected attribute `_encoder_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bson/__init__.py:1004:43-60: Protected attribute `_fallback_encoder` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bson/__init__.py:1299:40-52: Protected attribute `_decoder_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bson/__init__.py:1507:17-26: Protected attribute `_inc_lock` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR bson/__init__.py:1508:18-27: Protected attribute `_inc_lock` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR gridfs/asynchronous/grid_file.py:159:30-33: Protected attribute `_id` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR gridfs/asynchronous/grid_file.py:693:35-38: Protected attribute `_id` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR gridfs/asynchronous/grid_file.py:1848:29-32: Protected attribute `_id` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR gridfs/synchronous/grid_file.py:159:30-33: Protected attribute `_id` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR gridfs/synchronous/grid_file.py:689:35-38: Protected attribute `_id` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR gridfs/synchronous/grid_file.py:1834:29-32: Protected attribute `_id` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/aggregation.py:132:29-49: Protected attribute `_read_preference_for` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/aggregation.py:158:42-60: Protected attribute `_write_concern_for` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/aggregation.py:201:26-47: Protected attribute `_maybe_pin_connection` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/bulk.py:185:28-44: Protected attribute `_event_listeners` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/bulk.py:233:33-55: Protected attribute `_start_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/bulk.py:235:29-38: Protected attribute `_apply_to` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/bulk.py:295:48-64: Protected attribute `_event_listeners` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/bulk.py:310:26-42: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/bulk.py:329:28-44: Protected attribute `_event_listeners` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/bulk.py:383:73-89: Protected attribute `_event_listeners` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/bulk.py:447:37-53: Protected attribute `_conn_for_writes` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/change_stream.py:83:35-50: Protected attribute `_retryable_read` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/change_stream.py:85:26-46: Protected attribute `_read_preference_for` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/change_stream.py:91:33-45: Protected attribute `_tmp_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/change_stream.py:191:45-54: Protected attribute `_try_next` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/change_stream.py:196:45-54: Protected attribute `_try_next` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/change_stream.py:217:29-53: Protected attribute `_post_batch_resume_token` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/change_stream.py:218:51-75: Protected attribute `_post_batch_resume_token` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/change_stream.py:233:29-38: Protected attribute `_has_next` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/change_stream.py:233:58-82: Protected attribute `_post_batch_resume_token` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/change_stream.py:234:41-65: Protected attribute `_post_batch_resume_token` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_bulk.py:193:30-51: Protected attribute `_maybe_pin_connection` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_bulk.py:236:33-49: Protected attribute `_event_listeners` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_bulk.py:276:29-51: Protected attribute `_start_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_bulk.py:278:25-34: Protected attribute `_apply_to` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_bulk.py:382:53-69: Protected attribute `_event_listeners` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_bulk.py:402:27-43: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_bulk.py:422:33-49: Protected attribute `_event_listeners` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_bulk.py:488:42-58: Protected attribute `_conn_for_writes` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_session.py:294:30-52: Protected attribute `_return_server_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_session.py:527:17-36: Protected attribute `_remove_error_label` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_session.py:583:35-50: Protected attribute `_retry_internal` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/client_session.py:610:41-49: Protected attribute `_command` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:245:65-73: Protected attribute `_replace` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:554:29-47: Protected attribute `_initialize_cursor` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:597:42-54: Protected attribute `_tmp_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:653:36-52: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:770:25-37: Protected attribute `_add_to_bulk` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:815:37-53: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:1098:44-60: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:1560:44-60: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:1968:34-44: Protected attribute `_encrypter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2163:27-39: Protected attribute `_tmp_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2164:33-48: Protected attribute `_retryable_read` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2253:43-59: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2488:36-52: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2538:42-62: Protected attribute `_txn_read_preference` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2567:30-51: Protected attribute `_maybe_pin_connection` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2570:42-54: Protected attribute `_tmp_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2571:48-63: Protected attribute `_retryable_read` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2670:44-59: Protected attribute `_retryable_read` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2674:31-46: Protected attribute `_performs_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2765:43-59: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2807:36-52: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2849:36-52: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2919:44-59: Protected attribute `_retryable_read` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2923:31-46: Protected attribute `_performs_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:2925:36-51: Protected attribute `_performs_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:3021:42-54: Protected attribute `_tmp_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:3063:34-44: Protected attribute `_encrypter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:3067:42-54: Protected attribute `_tmp_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:3145:29-45: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/collection.py:3297:44-60: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_cursor.py:64:23-41: Protected attribute `_should_pin_cursor` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_cursor.py:80:37-51: Protected attribute `_run_operation` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_cursor.py:127:42-62: Protected attribute `_read_preference_for` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:187:22-44: Protected attribute `_raise_if_not_writable` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:188:50-71: Protected attribute `_starting_transaction` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:189:25-37: Protected attribute `_transaction` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:212:30-47: Protected attribute `_process_response` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:236:26-36: Protected attribute `_encrypter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:237:34-44: Protected attribute `_encrypter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:268:26-38: Protected attribute `_topology_id` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:328:26-38: Protected attribute `_topology_id` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:410:21-41: Protected attribute `_update_read_concern` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:414:26-38: Protected attribute `_topology_id` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:420:26-36: Protected attribute `_encrypter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:420:52-62: Protected attribute `_encrypter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:420:63-86: Protected attribute `_bypass_auto_encryption` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/command_runner.py:421:36-46: Protected attribute `_encrypter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/cursor_base.py:46:25-35: Protected attribute `_encrypter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/cursor_base.py:46:61-71: Protected attribute `_encrypter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/cursor_base.py:46:72-95: Protected attribute `_bypass_auto_encryption` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:311:58-79: Protected attribute `_encrypted_fields_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:312:58-79: Protected attribute `_encrypted_fields_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:319:62-83: Protected attribute `_encrypted_fields_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:473:29-47: Protected attribute `_initialize_cursor` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:610:33-45: Protected attribute `_tmp_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:632:24-31: Protected attribute `_create` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:703:32-44: Protected attribute `_tmp_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:711:38-53: Protected attribute `_retryable_read` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:715:35-50: Protected attribute `_performs_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:772:33-45: Protected attribute `_tmp_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:926:52-72: Protected attribute `_txn_read_preference` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:946:35-50: Protected attribute `_retryable_read` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:1015:33-45: Protected attribute `_tmp_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:1019:49-69: Protected attribute `_txn_read_preference` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:1049:38-59: Protected attribute `_maybe_pin_connection` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:1054:38-53: Protected attribute `_retryable_read` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:1065:48-68: Protected attribute `_txn_read_preference` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:1080:35-50: Protected attribute `_retryable_read` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:1096:33-45: Protected attribute `_tmp_session` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:1107:26-47: Protected attribute `_maybe_pin_connection` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:1138:42-62: Protected attribute `_txn_read_preference` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:1152:35-50: Protected attribute `_retryable_read` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/database.py:1271:34-50: Protected attribute `_retryable_write` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:145:39-56: Protected attribute `_kms_ssl_contexts` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:190:27-48: Protected attribute `_kms_connect_callback` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:266:27-50: Protected attribute `_mongocryptd_spawn_path` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:267:31-54: Protected attribute `_mongocryptd_spawn_args` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:278:48-73: Protected attribute `_mongocryptd_bypass_spawn` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:289:26-51: Protected attribute `_mongocryptd_bypass_spawn` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:363:17-28: Protected attribute `_schema_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:366:45-56: Protected attribute `_schema_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:368:17-38: Protected attribute `_encrypted_fields_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:371:55-76: Protected attribute `_encrypted_fields_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:372:45-68: Protected attribute `_bypass_auto_encryption` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:375:14-31: Protected attribute `_kms_ssl_contexts` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:386:44-54: Protected attribute `_duplicate` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:390:17-34: Protected attribute `_key_vault_client` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:391:37-54: Protected attribute `_key_vault_client` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:395:17-40: Protected attribute `_bypass_auto_encryption` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:400:25-45: Protected attribute `_key_vault_namespace` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:404:18-34: Protected attribute `_mongocryptd_uri` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:416:36-50: Protected attribute `_kms_providers` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:418:44-66: Protected attribute `_crypt_shared_lib_path` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR pymongo/asynchronous/encryption.py:419:48-74: Protected attribute `_crypt_shared_lib_required` cannot be accessed outside of its defining class or a subclass [protected-access]

... (truncated 358 lines) ...

starlette (https://github.com/encode/starlette)
+ ERROR tests/test_formparsers.py:607:19-34: Protected attribute `_current_fields` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_formparsers.py:615:23-35: Protected attribute `_field_value` cannot be accessed outside of its defining class or a subclass [protected-access]

apprise (https://github.com/caronc/apprise)
+ ERROR apprise/apprise.py:1440:39-56: Protected attribute `_payload_max_size` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/apprise.py:1451:34-51: Protected attribute `_payload_max_size` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/apprise.py:1455:46-63: Protected attribute `_payload_max_size` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/apprise.py:1456:46-71: Protected attribute `_payload_buffer_threshold` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/apprise.py:1457:46-65: Protected attribute `_payload_min_buffer` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/cli.py:773:25-41: Protected attribute `_service_timeout` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/cli.py:1552:33-50: Protected attribute `_resolve_template` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/dispatch.py:188:22-38: Protected attribute `_service_timeout` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/dispatch.py:435:67-80: Protected attribute `_log_callback` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/dispatch.py:437:34-53: Protected attribute `_resolve_call_level` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/dispatch.py:438:61-71: Protected attribute `_log_level` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/dispatch.py:494:34-61: Protected attribute `_inject_per_service_retries` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/dispatch.py:513:31-48: Protected attribute `_build_tag_chains` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/logger.py:422:40-54: Protected attribute `_LIMIT_MESSAGE` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/logger.py:425:39-52: Protected attribute `_DISK_MESSAGE` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/logger.py:481:29-36: Protected attribute `_HEADER` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/logger.py:552:57-61: Protected attribute `_END` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/plugins/apprise_api.py:461:44-48: Protected attribute `_uid` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/plugins/apprise_api.py:463:61-71: Protected attribute `_recursion` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/plugins/base.py:1181:28-45: Protected attribute `_payload_max_size` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/plugins/matrix/base.py:2914:21-29: Protected attribute `_counter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/plugins/matrix/base.py:3005:21-29: Protected attribute `_counter` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR apprise/plugins/xmpp/base.py:69:60-68: Protected attribute `_enabled` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/conftest.py:107:31-41: Protected attribute `_instances` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/conftest.py:110:23-33: Protected attribute `_instances` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_api.py:1431:23-31: Protected attribute `_formats` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_api.py:1443:22-30: Protected attribute `_formats` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_api.py:1462:31-47: Protected attribute `_format_override` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_api.py:1472:35-51: Protected attribute `_format_override` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_api.py:2737:45-56: Protected attribute `_schema_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_api.py:2754:31-42: Protected attribute `_schema_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_api.py:2763:29-40: Protected attribute `_schema_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:116:18-34: Protected attribute `_service_timeout` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:120:18-34: Protected attribute `_service_timeout` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:121:29-45: Protected attribute `_service_timeout` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:125:18-34: Protected attribute `_service_timeout` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:129:18-34: Protected attribute `_service_timeout` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:170:18-35: Protected attribute `_payload_max_size` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:174:18-35: Protected attribute `_payload_max_size` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:178:18-35: Protected attribute `_payload_max_size` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:205:18-43: Protected attribute `_payload_buffer_threshold` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:206:18-37: Protected attribute `_payload_min_buffer` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:210:18-43: Protected attribute `_payload_buffer_threshold` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:211:18-37: Protected attribute `_payload_min_buffer` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:215:18-43: Protected attribute `_payload_buffer_threshold` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:216:18-37: Protected attribute `_payload_min_buffer` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:380:18-43: Protected attribute `_payload_buffer_threshold` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_asset.py:381:18-37: Protected attribute `_payload_min_buffer` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2243:11-36: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2244:11-29: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2270:11-36: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2271:11-29: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2288:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2289:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2304:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2305:48-73: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2308:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2314:11-36: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2315:11-29: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2342:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2343:40-65: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2345:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2373:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2374:40-65: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2375:41-66: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2377:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2383:11-36: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2384:11-29: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2427:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2428:33-58: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2432:18-43: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2436:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2442:27-45: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2445:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2446:31-49: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2448:32-50: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2452:15-33: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2457:15-33: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2466:19-30: Protected attribute `_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2466:37-55: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2469:25-36: Protected attribute `_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2469:43-61: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2478:11-36: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2479:11-29: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2504:11-36: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2505:11-29: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2548:11-36: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2549:11-29: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2611:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2613:50-75: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2618:18-43: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2622:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2630:27-45: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2632:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2633:32-50: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2634:32-50: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2636:32-50: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_cli.py:2638:32-50: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_config.py:267:11-22: Protected attribute `_schema_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_config.py:578:11-22: Protected attribute `_schema_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_config.py:1311:25-47: Protected attribute `_special_token_handler` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_config.py:1346:25-47: Protected attribute `_special_token_handler` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_config.py:1375:25-47: Protected attribute `_special_token_handler` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_translations.py:161:37-54: Protected attribute `_default_language` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_translations.py:388:36-53: Protected attribute `_default_language` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_translations.py:514:48-65: Protected attribute `_default_language` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_translations.py:608:45-62: Protected attribute `_default_language` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_translations.py:666:37-54: Protected attribute `_default_language` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2807:11-36: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2808:11-29: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2814:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2815:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2845:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2846:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2855:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2856:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2859:11-36: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2860:11-29: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2884:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2885:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2888:11-36: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2889:11-29: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2899:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2900:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2904:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2905:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2934:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2935:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2940:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2941:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2946:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2947:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2953:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2954:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2970:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2972:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2977:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2978:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2986:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2987:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2994:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:2995:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:3000:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:3001:22-40: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:3006:11-36: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:3007:11-29: Protected attribute `_custom_module_map` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_apprise_utils.py:3030:22-47: Protected attribute `_paths_previously_scanned` cannot be accessed outside of its defining class or a subclass [protected-access]

... (truncated 1223 lines) ...

yarl (https://github.com/aio-libs/yarl)
+ ERROR tests/test_pickle.py:14:15-21: Protected attribute `_cache` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:23:14-18: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:31:14-18: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:51:15-21: Protected attribute `_cache` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:53:15-22: Protected attribute `_scheme` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:54:15-22: Protected attribute `_netloc` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:55:15-20: Protected attribute `_path` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:56:15-21: Protected attribute `_query` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:57:15-24: Protected attribute `_fragment` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:74:14-21: Protected attribute `_scheme` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:75:14-21: Protected attribute `_netloc` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:76:14-19: Protected attribute `_path` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:77:14-20: Protected attribute `_query` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_pickle.py:78:14-23: Protected attribute `_fragment` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:140:45-49: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:146:45-49: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:162:49-53: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:168:49-53: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:188:49-53: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:215:45-49: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:273:45-49: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:294:45-49: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:300:45-49: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:306:45-49: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:340:45-49: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:346:45-49: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:354:45-49: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:637:50-54: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]
+ ERROR tests/test_url.py:643:50-54: Protected attribute `_val` cannot be accessed outside of its defining class or a subclass [protected-access]

... (truncated 6491 lines) ...

@rchen152 rchen152 removed the stale label Oct 30, 2026
Comment thread pyrefly/lib/alt/solve.rs
}
}

fn check_protected_attribute_access(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

When I suggested pulling this code out into a helper, I actually only meant the portion that computed the error kind and message for protected-access, not that the previous refactor should be undone, but I can fix this in a follow-up.

@stroxler stroxler left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review automatically exported from Phabricator review in Meta.

@meta-codesync meta-codesync Bot closed this in 861610e Nov 1, 2026
@meta-codesync meta-codesync Bot added the Merged label Nov 1, 2026
@meta-codesync

meta-codesync Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

@rchen152 merged this pull request in 861610e.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

reportPrivateUsage from pyright is not covered by no-access

4 participants