Skip to content

Commit b10d090

Browse files
authored
f25 (#81)
* f25 * ruff * lint * fix unit test * fix a notrebook * nb * fix tri * fix ci * fix image name * update * remove blockdiag * doc
1 parent 06913a2 commit b10d090

30 files changed

+1473
-705
lines changed

.circleci/config.yml

Lines changed: 0 additions & 100 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: ci
2+
3+
on:
4+
push:
5+
pull_request:
6+
types:
7+
- closed
8+
branches:
9+
- main
10+
11+
jobs:
12+
run:
13+
name: to-${{ matrix.torch }}-tr-${{ matrix.transformers }}-ci ${{ matrix.os }}-${{ matrix.python }}
14+
runs-on: ${{ matrix.os }}
15+
strategy:
16+
matrix:
17+
os: [ubuntu-latest]
18+
python: ['3.12']
19+
steps:
20+
- uses: actions/checkout@v3
21+
22+
- uses: actions/setup-python@v4
23+
with:
24+
python-version: ${{ matrix.python }}
25+
26+
- name: Install requirements
27+
run: python -m pip install -r requirements.txt
28+
29+
- name: Install requirements dev
30+
run: python -m pip install -r requirements-dev.txt
31+
32+
- name: Cache pip
33+
uses: actions/cache@v4
34+
with:
35+
path: ~/.cache/pip
36+
key: ${{ runner.os }}-pip-${{ hashFiles('requirements-dev.txt') }}
37+
restore-keys: |
38+
${{ runner.os }}-pip-
39+
${{ runner.os }}-
40+
41+
- name: pip freeze
42+
run: python -m pip freeze
43+
44+
- name: run tests
45+
run: |
46+
pip install pytest
47+
PYTHONPATH=. UNITTEST_GOING=1 pytest --durations=10 _unittests --ignore-glob=**pygame*.py

.github/workflows/documentation.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ jobs:
8484
grep ERROR doc.txt
8585
exit 1
8686
fi
87-
if [[ $(grep WARNING doc.txt | grep -v 'download' | grep -v 'CERTIFICATE_VERIFY_FAILED') ]]; then
87+
if [[ $(grep WARNING doc.txt | grep -v 'download' | grep -v 'CERTIFICATE_VERIFY_FAILED' | grep -v '[image.not_readable]') ]]; then
8888
echo "Documentation produces warnings."
89-
cat doc.txt | grep WARNING | grep -v 'CERTIFICATE_VERIFY_FAILED' | grep -v 'download'
89+
cat doc.txt | grep WARNING | grep -v 'CERTIFICATE_VERIFY_FAILED' | grep -v 'download' | grep -v '[image.not_readable]'
9090
exit 1
9191
fi
9292

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ prof
3232
temp_*
3333
essai.txt
3434
schema.proto
35+
images/*
3536
.ipynb_checkpoints
3637
_latex/ensae/*.aux
3738
_latex/ensae/*.idx

README.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
:target: https://ci.appveyor.com/project/sdpython/teachpyx
44
:alt: Build Status Windows
55

6-
.. image:: https://dl.circleci.com/status-badge/img/gh/sdpython/teachpyx/tree/main.svg?style=svg
7-
:target: https://dl.circleci.com/status-badge/redirect/gh/sdpython/teachpyx/tree/main
8-
96
.. image:: https://badge.fury.io/py/teachpyx.svg
107
:target: https://pypi.org/project/teachpyx/
118

_doc/api/tools/blockdiag_helper.rst

Lines changed: 0 additions & 7 deletions
This file was deleted.

_doc/api/tools/index.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ teachpyx.tools
1616
:caption: modules
1717

1818

19-
blockdiag_helper
2019
data_helper
2120
graphviz_helper
2221
helpers

_doc/articles/2024/2024-11-31-route2024.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _l-feuille-route-ensae-2024:
2+
13
2024-11-31 : rappel feuille de route 2024
24
=========================================
35

@@ -26,7 +28,7 @@ Fin des classes puis :ref:`les itérateurs <nbl-practice-py-base-classe_iterateu
2628
Séance 4
2729
++++++++
2830

29-
Nous garderons les dames et l'algortithme minimax pour une autre fois peut être.
31+
Nous garderons les dames et l'algorithme minimax pour une autre fois peut être.
3032
Cette séance à propos de la programmation dynamique.
3133
Le premier exercice consiste à déterminer le nombre minimal de pièces
3234
de monnaie pour écrire un montant et de retrouver la séquence minimale
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
2025-09-03 : ENSAE
2+
==================
3+
4+
**Objectif**
5+
6+
Vous permettre de maîtriser les outils nécessaires à la réalisation de vos
7+
projets, à l'ENSAE et ce qui suivra.
8+
9+
Le langage python est un des plus simples et un des plus populaires.
10+
Il est open source et fonctionne sur tous les systèmes d'exploitation.
11+
Il permet d'accomplir à peu près toutes les tâches, que ce soit
12+
des calculs numériques, la création d'un site web, l'automisation de
13+
tâches répétitives et complexes.
14+
15+
**Notions à maîtriser**
16+
17+
* éléments de bases du langages (boucles, listes, tests, fonctions)
18+
* classes (attributes, méthodes, opérateurs, héritages)
19+
* graphes, arbre
20+
* numpy (opérations standard, broadcasting)
21+
* format de données (JSON, XML, HTML, csv)
22+
* tests unitaires (package unittest, git, pull request)
23+
* profiling
24+
* algorithmes
25+
* tri fusion
26+
* recherche dichotomique
27+
* graphes (composantes connexes, Kruskal, ...)
28+
* programmation dynamique (chemin plus court dans un graphe, distance d'édition)
29+
* problème NP-complet tels que le voyageur de commerce
30+
* comment résoudre un sudoku
31+
* algorithme alpha-beta pour résoudre un jeu de réflexion (dames, échecs, othello, ...)
32+
33+
**Notions non abordées**
34+
35+
Manipulation de données, pandas, machine learning, elles le seront en seconde année et non en première année.
36+
37+
**Evaluation**
38+
39+
1 TD noté. Les classes seront abordées et un problème algorithmique.
40+
Voir aussi les précédents énoncés : :ref:`l-exams`.
41+
42+
**Le Chat, ChatGPT, Gemini, ...**
43+
44+
Ces outils changent véritablement la façon d'écrire du code.
45+
Ils permettent d'aller parfois trois à quatre fois plus vite
46+
pour résoudre un problème. Ils peuvent fournir une bonne base pour écrire
47+
de la documentation, des tests unitaires, pour créer un graphique,
48+
traduire un programme dans un autre langage, écrire un algorithme connu
49+
dans un cadre précis.
50+
51+
Ils ne fournissent pas la solution mais une bonne base de départ qu'on peut retravailler
52+
ou ajouter à d'autres bouts de code construits de la même façon.
53+
Pour comprendre les réponses, il est important de connaître le langage
54+
et quelques algorithmes.
55+
56+
La plupart du temps, on n'invente pas de nouveau, on assemble des algortihmes
57+
existants ou on les adapte dans des cas où la version classique est trop longue,
58+
ou ne prend pas en compte une contrainte particulière...
59+
60+
.. image:: dames_chatgpt.png
61+
62+
A qui appartient le code écrit ?
63+
64+
**Ressources**
65+
66+
* Ce site : `sdpython.github.io/doc/teachpyx/dev/ <https://sdpython.github.io/doc/teachpyx/dev/>`_
67+
* :ref:`l-book-python`
68+
* exercices sur le langage :ref:`l-python`
69+
* exercices sur des algortihmes :ref:`l-algo`
70+
* examens passés :ref:`l-exams`
71+
* `Des aspects plus mathématiques d'algorithmes <https://sdpython.github.io/doc/mlstatpy/dev/>`_
72+
73+
**Getting Started**
74+
75+
* `cheat sheet python <https://perso.limsi.fr/pointal/_media/python:cours:mementopython3-english.pdf>`_
76+
* `Anaconda <https://www.anaconda.com/>`_,
77+
`miniconda <https://docs.conda.io/projects/miniconda/en/latest/>`_,
78+
`mamba <https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html>`_
79+
* `Visual Studio Code <https://code.visualstudio.com/>`_
80+
* `git <https://git-scm.com/>`_, `github <https://github.com/>`_
81+
* `notebook <https://jupyter.org/>`_
82+
83+
**Feuilles de routes**
84+
85+
* :ref:`l-feuille-route-ensae-2024`
86+
* :ref:`l-feuille-route-ensae-2025`
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
.. _l-feuille-route-ensae-2025:
2+
3+
2025-11-31 : rappel feuille de route 2025
4+
=========================================
5+
6+
Le plan des séances est parfois changé après que celles-ci ont eu lieu.
7+
8+
Suggestions de sujets pour les séances.
9+
10+
Séance 1
11+
++++++++
12+
13+
* introduction aux classes
14+
* attributs et méthodes
15+
* constructeur ``__init__``
16+
* méthodes spéciales ``__str__``, ``__add__``
17+
* propriété ``@property``
18+
* package dataclass
19+
20+
.. code-block:: python
21+
22+
@dataclass
23+
class SerieTelevisee:
24+
duree_episode: float
25+
n_episodes: int
26+
n_saisons: int
27+
categorie: str
28+
29+
def __post_init__(self):
30+
self.duree_total = self.duree_episode * self.n_episodes * self.n_saisons
31+
32+
Utilisation de ChatGPT, Gemini, LeChat, ... pour convertir un code
33+
sans classe en un code avec des classes et réciproquement.
34+
35+
Séance 2
36+
++++++++
37+
38+
* héritage
39+
* itérateurs
40+
* tests unitaires
41+
42+
Ecriture de tests unitaires avec ChatGPT, Gemini, LeChat, ...
43+
44+
Séance 3
45+
++++++++
46+
47+
* numpy, broadcasting
48+
* implémentation d'un chi-deux sans boucle
49+
50+
Séance 4
51+
++++++++
52+
53+
* plus court chemin dans un graphe
54+
* voyageur de commerce
55+
* distance d'édition (si le temps le permet)
56+
57+
Séance 5
58+
++++++++
59+
60+
* profiling
61+
* :ref:`Recherche à base de préfixes <nbl-practice-years-2023-prefix_search>` en terme algorithmique.
62+
63+
Séance 6
64+
++++++++
65+
66+
:ref:`Expressions régulières <nbl-practice-py-base-exercice_regex>`,
67+
:ref:`Modules, fichiers, expression régulières <nbl-practice-tds-base-module_file_regex>`
68+
69+
Séance 7
70+
++++++++
71+
72+
Exemple d'assemblage d'algorithme avec le problème du postier chinois.
73+
74+
Révision avec un TD noté.
75+
Utilisation de ChatGPT, LeChat, Gemini après quelques minutes.
76+
77+
Séance 8
78+
++++++++
79+
80+
Quelques rappels en préparation du TD noté.
81+
82+
TD noté 1h30 en seconde partie.
83+
Classes et un algorithme.
84+
Enoncés des années précédentes :
85+
:ref:`l-exams`.

0 commit comments

Comments
 (0)