pyscg-0051 should use a context manager
@s19110 arbeitet bereits daran.
Seit 06.11.2026.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 68/100
Rechercherichtung
Finde die Anleitung zu pyscg-0051 und das dazu konforme Codebeispiel im Repository. Lies die umgebende Regel und prüfe, wie der Umgang mit Ressourcen dargestellt wird; das Beispiel mit dem Context Manager im Issue zeigt die vorgesehene Richtung. Aktualisiere die Anleitung so, dass Ressourcen bei einer Ausnahme freigegeben werden, und bestätige, dass das überarbeitete Beispiel und die Erklärung dieses Verhalten widerspiegeln.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
pyscg-0051 compliant solution will not release the resources if there is an exception between the resource creation and release. Most libraries (sqlalchemy, aiohttp, requests) uses context manager for that
for example:
"""Compliant Code Example"""
from contextlib import contextmanager
@contextmanager
def resource_pool():
pool = []
def append_resource(name):
print(f"Allocating resource {name}")
pool.append({"name": name, "active": True}) # Simulated resource
try:
yield pool, append_resource
finally:
# Properly release resources on exit
for resource in pool:
resource["active"] = False
pool.clear()
with resource_pool() as (my_list, append_resource):
append_resource("A")
append_resource("B")
# Outside the context, resources are released
if not any(resource["active"] for resource in my_list):
print("All resources released.")
- Vorherrschende Sprache
- Python
- Sterne
- 2
- Forks
- 2
- Ø Merge
- 11 Min.
- Gemergte PRs (30 T.)
- 2
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus ossf/python-secure-coding-guide
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 65/100
ossf/python-secure-coding-guide#29 · 1 Kommentar ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
-
pysg-0023 Compact version of https://github.com/ossf/python-secure-coding-guide/pull/22/changesOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 58/100
Alle Issues in ossf/python-secure-coding-guide
Ähnliche Issues
-
documentation type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
add entry to blockOffen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 65/100
StevenBlack/hosts#3299 ·
-
`garak --report` overwrites the input report when its name has no ".report"Evtl. vergeben @0z5a hat das heute übernommen. Offenneeds-triage
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 2 Tagen
-
trace: Pi's 1-hour cache writes are priced at 1.25x, but billed at 2xEvtl. vergeben @Shizoqua hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
microsoft/TokenEconomizer#221 ·
Maintainer antworten meist innerhalb von 1 Tag
-
plot_graph crashes when a mesh node has no m2m edgeEvtl. vergeben @tygvi hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
mllam/neural-lam#883 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen