Conținut curs
Python Avansat
Despre lecție
  1. Planificarea bibliotecii

    • Identificarea scopului și funcționalităților bibliotecii
    • Alegerea unui nume și a unei structuri de pachet adecvate
  2. Crearea unei structuri de proiect

    • Structura standard a unei biblioteci Python
    • Înțelegerea fișierelor și directoarelor componente
  3. Scrierea codului bibliotecii

    • Organizarea codului în module și funcții
    • Utilizarea docstring-urilor pentru documentarea codului
  4. Implementarea testelor unitare

    • Introducere în testarea unitară
    • Scrierea testelor unitare cu modulul unittest
    • Rularea testelor și interpretarea rezultatelor
  5. Crearea fișierului setup.py

    • Utilizarea setuptools pentru a configura biblioteca
    • Definirea metadatelor și a dependențelor bibliotecii
  6. Adăugarea unui fișier README.md

    • Conținutul și importanța unui fișier README.md
    • Bune practici pentru scrierea fișierului README.md
  7. Gestionarea versiunilor bibliotecii

    • Alegerea unui sistem de versionare
    • Utilizarea sistemului de versionare ales
  8. Distribuirea bibliotecii pe PyPI

    • Înregistrarea și autentificarea pe PyPI
    • Utilizarea twine pentru a încărca biblioteca pe PyPI
  9. Menținerea și actualizarea bibliotecii

    • Evaluarea feedback-ului și a contribuțiilor comunității
    • Lansarea de noi versiuni și actualizări ale bibliotecii

Exemple și exerciții pentru fiecare subpunct:

Exemplu: Structura unui proiect de bibliotecă Python

mylibrary/
    mylibrary/
        __init__.py
        module1.py
        module2.py
    tests/
        __init__.py
        test_module1.py
        test_module2.py
    setup.py
    README.md

Exercițiu:

Creați o structură de proiect pentru o bibliotecă Python pe care doriți să o dezvoltați.

Exemplu: Docstring pentru o funcție

python
def adunare(a, b):
    """
    Aduna doi parametri a și b și returnează rezultatul.

    Args:
        a (int): Primul număr.
        b (int): Al doilea număr.

    Returns:
        int: Suma celor doi parametri.
    """
    return a + b

Exercițiu:

Scrieți câteva funcții pentru biblioteca dvs. și adăugați docstring-uri pentru a documenta funcționalitatea lor.

Exemplu: Test unitar pentru funcția adunare

python
import unittest
from mylibrary.module1 import adunare

class TestAdunare(unittest.TestCase):

    def test_adunare(self):
        self.assertEqual(adunare(1, 2), 3)
        self.assertEqual(adunare(-1, 1), 0)
        self.assertEqual(adunare(0, 0), 0)

if __name__ == "__main__":
    unittest.main()

Exercițiu:

Scrieți teste unitare pentru funcțiile adăugate în biblioteca dvs. și rulați-le pentru a verifica corectitudinea codului.

Exemplu: Fișier setup.py

python
from setuptools import setup, find_packages

setup(
    name="mylibrary",
    version="0.1.0",
    packages=find_packages(),
    install_requires=[
        # Lista dependențelor bibliotecii
    ],
)

Exercițiu:

Creați un fișier setup.py pentru biblioteca dvs. și specificați metadatele și dependențele corespunzătoare.

Exemplu: Fișier README.md

# MyLibrary

MyLibrary este o bibliotecă Python care oferă funcționalități pentru ...

## Instalare

Pentru a instala MyLibrary, rulați următoarea comandă:

```bash
pip install mylibrary

Utilizare

Pentru a utiliza MyLibrary, importați modulele dorite și apelați funcțiile disponibile.

Exemplu:

python
from mylibrary.module1 import adunare

rezultat = adunare(1, 2)
print(rezultat)  # Afișează 3

Documentație

Pentru mai multe detalii despre funcționalitățile bibliotecii, consultați documentația oficială.

Contribuții

Orice contribuție este binevenită! Deschideți o problemă sau creați un pull request pe pagina de GitHub a proiectului.

Licență

MyLibrary este distribuit sub licența MIT.


*Exercițiu:*

Creați un fișier `README.md` pentru biblioteca dvs., descriind scopul, modul de instalare și utilizare, documentația, contribuțiile și licența.

*Exemple și exerciții suplimentare pentru subiectele avansate:*

*Exemplu: Utilizarea unui sistem de versionare (Git)*

1. Inițializarea unui repo Git în directorul proiectului:

```bash
git init
  1. Adăugarea fișierelor în repo și crearea unui commit inițial:
bash
git add .
git commit -m "Commit inițial"
  1. Crearea unui repo pe GitHub și adăugarea acestuia ca remote:
bash
git remote add origin https://github.com/username/mylibrary.git
  1. Împingerea commit-urilor pe GitHub:
bash
git push -u origin master

Exercițiu:

Inițializați un repo Git pentru biblioteca dvs., creați un commit inițial, adăugați un remote și împingeți commit-urile pe acesta.

Exemplu: Distribuirea bibliotecii pe PyPI

  1. Instalarea twine:
bash
pip install twine
  1. Crearea distribuției bibliotecii:
bash
python setup.py sdist bdist_wheel
  1. Încărcarea distribuției pe PyPI:
bash
twine upload dist/*

Exercițiu:

Distribuiți biblioteca dvs. pe PyPI, urmând pașii din exemplu.


După parcurgerea lecției și a exercițiilor, cursanții vor fi capabili să creeze și să distribuie propriile biblioteci Python, înțelegând principiile de bază ale structurii de proiect, testării unitare, versionării și distribuirii pe PyPI.