Skip to content

Latest commit

 

History

History
63 lines (53 loc) · 2.99 KB

File metadata and controls

63 lines (53 loc) · 2.99 KB

Deferred Modernization Work

The packaging migration (setup.py → pyproject.toml, drop six, refresh docs) landed in commits 7df4a94..``HEAD``. The items below were identified during that sweep but deliberately left out because each is large enough to warrant its own focused PR.

Mechanical Python idiom updates

Each of these is a near-mechanical refactor with a wide diff. Best done one-at-a-time so reviewers can read each change as a single transformation.

  • Drop explicit ``object`` base class. class Foo(object):class Foo:. No behavior change in Py3.
  • Modernize ``super()`` calls. super(ClassName, self).method(...)super().method(...). The arguments are required only in Py2.
  • Adopt f-strings. "x={0}".format(x) and "x=%s" % xf"x={x}". Skip for logging calls — those should keep %s formatting so the logger can short-circuit when the level is disabled.
  • Switch typing imports to builtins. List[X] / Dict[K, V] / Optional[X]list[X] / dict[K, V] / X | None once a Python 3.10+ floor is acceptable (we already require 3.13, so this is safe today).

Lint and tooling

  • Fix the ~23 pre-existing flake8 import-order errors. Run tox -e lint to see the list. Mostly I100/I201/I202 under cloudbridge/providers/azure, gcp, and openstack.
  • Consider replacing flake8 + flake8-import-order with ruff. Ruff reads pyproject.toml, runs ~100× faster, and covers import ordering (I) plus most flake8 plugins out of the box.
  • Consider adding mypy / pyright in CI. The codebase has no type hints today; this would be a meaningful uplift, not a one-PR task.

Repository hygiene

  • Untracked local-dev artifacts at the repo rootazure.txt, openstack.txt, docs2/, script_test.py, openstack.log. Each likely belongs in .gitignore or in a developer's untracked workspace; investigate before either committing or deleting.

Integration-test infrastructure

  • Reap stale ``cb-*`` resources on the OpenStack DevStack target. When an integration test fails partway, its cleanup sometimes doesn't run (e.g., cleanup itself errors), leaving orphan volumes, servers, floating IPs, and networks named cb-<role>-<uuid> in the demo project. They accumulate across CI runs and eventually trip the project quotas (we hit VolumeLimitExceeded once already). Quotas have been raised generously as a stopgap, but the proper fix is a janitor: a small script that runs at the start of each tox -e py3.13-openstack invocation (or as a host-side systemd timer) and deletes any cb-*-named resource older than ~1 hour. Candidate hook: a setUp-level fixture in tests/helpers/__init__.py that nukes leftovers before the run, scoped by the cloudbridge naming convention so it can't touch unrelated tenants.