pyscg-0051 should use a context manager
@s19110 y travaille déjà.
Depuis le 6/11/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 68/100
Piste de recherche
Trouvez dans le dépôt les recommandations de pyscg-0051 et leur exemple de code conforme. Lisez la règle environnante et vérifiez comment la gestion des ressources est présentée ; l’exemple de gestionnaire de contexte dans l’issue indique l’orientation prévue. Mettez à jour les recommandations afin que les ressources soient libérées lorsqu’une exception se produit, et confirmez que l’exemple révisé et l’explication correspondent à ce comportement.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.")
- Langage dominant
- Python
- Étoiles
- 2
- Forks
- 2
- Merge moyen
- 11 min
- PR mergées (30 j)
- 2
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de ossf/python-secure-coding-guide
-
Difficulté 3/5 1-2 jours Accessibilité débutants 65/100
ossf/python-secure-coding-guide#29 · 1 commentaire ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
-
pysg-0023 Compact version of https://github.com/ossf/python-secure-coding-guide/pull/22/changesOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 58/100
Toutes les issues de ossf/python-secure-coding-guide
Issues similaires
-
README Quick Start query command fails, and doctor points to a missing Prerequisites sectionOuvertedocumentation type/bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
add entry to blockOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 65/100
StevenBlack/hosts#3299 ·
-
`garak --report` overwrites the input report when its name has no ".report"Peut-être pris @0z5a l’a pris aujourd’hui. Ouverteneeds-triage
Difficulté 2/5 Une demi-journée Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 2 jours
-
trace: Pi's 1-hour cache writes are priced at 1.25x, but billed at 2xPeut-être pris @Shizoqua l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
microsoft/TokenEconomizer#221 ·
Les mainteneurs répondent en général sous 1 jour
-
plot_graph crashes when a mesh node has no m2m edgePeut-être pris @tygvi l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
mllam/neural-lam#883 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours