Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Better example code?

Ouverte
#53 1 commentaire 0 réactions 1 personne assignée Voir sur GitHub

@ericzbeard y travaille déjà.

Depuis le 13/10/2022.

Évaluation

Cette issue n'a pas encore été évaluée.

Description

documentation good first issue p1

This could also be misunderstanding, the current example code in the create_handler looks like:

    try:
        if isinstance(session, SessionProxy):
            client = session.client("s3")
        # Setting Status to success will signal to cfn that the operation is complete
        progress.status = OperationStatus.SUCCESS
    except TypeError as e:
        # exceptions module lets CloudFormation know the type of failure that occurred
        raise exceptions.InternalFailure(f"was not expecting type {e}")
        # this can also be done by returning a failed progress event
        # return ProgressEvent.failed(HandlerErrorCode.InternalFailure, f"was not expecting type {e}")
    return progress

as far as I can see that will never raise a TypeError. So I feel this code will be better to get people started:

    if not isinstance(session, SessionProxy):
        # exceptions module lets CloudFormation know the type of failure that occurred
        raise exceptions.InternalFailure(f"session should be a SessionProxy")
        # this can also be done by returning a failed progress event
        # return ProgressEvent.failed(HandlerErrorCode.InternalFailure, f"was not expecting type {e}")
    
    # TODO: put code here

    # Setting Status to success will signal to cfn that the operation is complete
    progress.status = OperationStatus.SUCCESS
    return progress

That shows the same concepts, without having that try except increasing indentation.

Even if it would throw that exception, I don't see the added value of replacing that with a custom exception (it makes debugging harder if we do not re-raise the original exception)

If CloudFormation requires the thrown exception to be from the exceptions, this sort of code will lead to pokemon exception handling (gotta catch them all), and converting unknown exceptions to InternlFailure would be better handled in cloudformation-cli-python-lib

Langage dominant
Python
Étoiles
107
Forks
46
Métriques de merge des PR
Aucune PR mergée en 30 j

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de aws-cloudformation/cloudformation-cli-python-plugin

Toutes les issues de aws-cloudformation/cloudformation-cli-python-plugin

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.