realpython / realpython/python-guide

Addition of specific example of great code from one of the listed repositories.

Offen
#995 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Batchfile
Sterne
29.8k
Forks
5.9k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I absolutely love the Reading Code section, and I've been going through some of the repositories and identifying specific examples of why the code is good.

I was hoping to add one such example to the page. Specifically, from howdoi. It's virtually at the top of the codebase and it deals with standardizing the repository for Python 2 and 3.

https://github.com/gleitz/howdoi/blob/master/howdoi/howdoi.py

# Handle imports for Python 2 and 3
if sys.version < '3':
    import codecs
    from urllib import quote as url_quote
    from urllib import getproxies

    # Handling Unicode: http://stackoverflow.com/a/6633040/305414
    def u(x):
        return codecs.unicode_escape_decode(x)[0]
else:
    from urllib.request import getproxies
    from urllib.parse import quote as url_quote

    def u(x):
        return x

I think that there are two (and a half) key pedagogical takeaways from this.

The half takeaway is that supporting different versions of Python need not be a grueling task.

The remaining two are -

  1. Appropriate use of control flow for module imports and function creation
  2. Standardizing an API so that its source is indistinguishable to the rest of the code and functionality is consistent.

I haven't formally written this up yet, but if you think it would be a useful example, I can do that and submit a pull request.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem Abschnitt Reading Code und dem verlinkten Beispiel howdoi/howdoi.py. Verfasse eine formelle Erläuterung der im Issue beschriebenen Importbehandlung für Python 2/3, des Kontrollflusses und der konsistenten API und füge sie der entsprechenden Seite hinzu. Als erledigt gilt die Aufgabe, wenn das Beispiel und seine pädagogischen Kernaussagen in einem Pull Request enthalten sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
documentation
Issue-Typ
Dokumentation
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.