From 364778079ee789580a1b4b6b4676ad32628eaa5a Mon Sep 17 00:00:00 2001 From: Benjamin Bohard Date: Tue, 8 Jan 2013 11:15:45 +0100 Subject: [PATCH] import de la formation python de Gwen --- python/formation/Makefile | 153 ++++ python/formation/_static/default.css | 849 ++++++++++++++++++++ python/formation/_static/print.css | 5 + python/formation/_static/sphinx.png | Bin 0 -> 24398 bytes python/formation/_static/sphinx.png.ori | Bin 0 -> 12223 bytes python/formation/_static/style.css | 389 +++++++++ python/formation/_templates/layout.html | 30 + python/formation/classes.txt | 161 ++++ python/formation/conf.py | 244 ++++++ python/formation/exercices.txt | 5 + python/formation/getting-started.txt | 104 +++ python/formation/images/DocPython.png | Bin 0 -> 137536 bytes python/formation/images/ModuleIndex.png | Bin 0 -> 149633 bytes python/formation/index.txt | 30 + python/formation/prompt.txt | 108 +++ python/formation/settings.txt | 96 +++ python/formation/snippets/aggregation.py | 8 + python/formation/snippets/cli.py | 73 ++ python/formation/snippets/cmdline.py | 47 ++ python/formation/snippets/decorateur.py | 10 + python/formation/snippets/heritage.py | 28 + python/formation/snippets/iterable.py | 20 + python/formation/snippets/patrons.py | 15 + python/formation/snippets/pystartup | 28 + python/formation/snippets/sorter.py | 38 + python/formation/snippets/specialmethods.py | 10 + python/formation/snippets/wrap.py | 22 + python/formation/specialmethods.txt | 229 ++++++ python/formation/stdlib.txt | 208 +++++ python/formation/structures.txt | 305 +++++++ python/formation/testsunitaires.txt | 153 ++++ python/formation/type.txt | 625 ++++++++++++++ 32 files changed, 3993 insertions(+) create mode 100644 python/formation/Makefile create mode 100644 python/formation/_static/default.css create mode 100644 python/formation/_static/print.css create mode 100644 python/formation/_static/sphinx.png create mode 100644 python/formation/_static/sphinx.png.ori create mode 100644 python/formation/_static/style.css create mode 100644 python/formation/_templates/layout.html create mode 100644 python/formation/classes.txt create mode 100644 python/formation/conf.py create mode 100644 python/formation/exercices.txt create mode 100644 python/formation/getting-started.txt create mode 100644 python/formation/images/DocPython.png create mode 100644 python/formation/images/ModuleIndex.png create mode 100644 python/formation/index.txt create mode 100644 python/formation/prompt.txt create mode 100644 python/formation/settings.txt create mode 100644 python/formation/snippets/aggregation.py create mode 100755 python/formation/snippets/cli.py create mode 100644 python/formation/snippets/cmdline.py create mode 100644 python/formation/snippets/decorateur.py create mode 100644 python/formation/snippets/heritage.py create mode 100644 python/formation/snippets/iterable.py create mode 100644 python/formation/snippets/patrons.py create mode 100644 python/formation/snippets/pystartup create mode 100644 python/formation/snippets/sorter.py create mode 100644 python/formation/snippets/specialmethods.py create mode 100644 python/formation/snippets/wrap.py create mode 100644 python/formation/specialmethods.txt create mode 100644 python/formation/stdlib.txt create mode 100644 python/formation/structures.txt create mode 100644 python/formation/testsunitaires.txt create mode 100644 python/formation/type.txt diff --git a/python/formation/Makefile b/python/formation/Makefile new file mode 100644 index 0000000..d3614a9 --- /dev/null +++ b/python/formation/Makefile @@ -0,0 +1,153 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/python.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/python.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/python" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/python" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/python/formation/_static/default.css b/python/formation/_static/default.css new file mode 100644 index 0000000..f7eb6dc --- /dev/null +++ b/python/formation/_static/default.css @@ -0,0 +1,849 @@ +/** + * Sphinx Doc Design + */ + +body { + font-family: sans-serif; + font-size: 100%; +/* background-color: #11303d; */ + background-color: #222; + color: #000; + margin: 0; + padding: 0; +} + +/* :::: LAYOUT :::: */ + +div.document { + background-color: #000000 ; /* #1c4e63; */ +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: white; + padding: 0 20px 30px 20px; +} + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.clearer { + clear: both; +} + +div.footer { + color: #fff; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #fff; + text-decoration: underline; +} + +div.related { + background-color: #133f52; + color: #fff; + width: 100%; + line-height: 30px; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +div.related a { + color: white; +} + +/* ::: TOC :::: */ +div.sphinxsidebar h3 { + font-family: 'Trebuchet MS', sans-serif; + color: white; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: white; +} + +div.sphinxsidebar h4 { + font-family: 'Trebuchet MS', sans-serif; + color: white; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: white; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + list-style: none; + color: white; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar a { + color: #98dbcc; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +/* :::: MODULE CLOUD :::: */ +div.modulecloud { + margin: -5px 10px 5px 10px; + padding: 10px; + line-height: 160%; + border: 1px solid #cbe7e5; + background-color: #f2fbfd; +} + +div.modulecloud a { + padding: 0 5px 0 5px; +} + +/* :::: SEARCH :::: */ +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* :::: COMMON FORM STYLES :::: */ + +div.actions { + padding: 5px 10px 5px 10px; + border-top: 1px solid #cbe7e5; + border-bottom: 1px solid #cbe7e5; + background-color: #e0f6f4; +} + +form dl { + color: #333; +} + +form dt { + clear: both; + float: left; + min-width: 110px; + margin-right: 10px; + padding-top: 2px; +} + +input#homepage { + display: none; +} + +div.error { + margin: 5px 20px 0 0; + padding: 5px; + border: 1px solid #d00; + font-weight: bold; +} + +/* :::: INLINE COMMENTS :::: */ + +div.inlinecomments { + position: absolute; + right: 20px; +} + +div.inlinecomments a.bubble { + display: block; + float: right; + background-image: url(style/comment.png); + background-repeat: no-repeat; + width: 25px; + height: 25px; + text-align: center; + padding-top: 3px; + font-size: 0.9em; + line-height: 14px; + font-weight: bold; + color: black; +} + +div.inlinecomments a.bubble span { + display: none; +} + +div.inlinecomments a.emptybubble { + background-image: url(style/nocomment.png); +} + +div.inlinecomments a.bubble:hover { + background-image: url(style/hovercomment.png); + text-decoration: none; + color: #3ca0a4; +} + +div.inlinecomments div.comments { + float: right; + margin: 25px 5px 0 0; + max-width: 50em; + min-width: 30em; + border: 1px solid #2eabb0; + background-color: #f2fbfd; + z-index: 150; +} + +div#comments { + border: 1px solid #2eabb0; + margin-top: 20px; +} + +div#comments div.nocomments { + padding: 10px; + font-weight: bold; +} + +div.inlinecomments div.comments h3, +div#comments h3 { + margin: 0; + padding: 0; + background-color: #2eabb0; + color: white; + border: none; + padding: 3px; +} + +div.inlinecomments div.comments div.actions { + padding: 4px; + margin: 0; + border-top: none; +} + +div#comments div.comment { + margin: 10px; + border: 1px solid #2eabb0; +} + +div.inlinecomments div.comment h4, +div.commentwindow div.comment h4, +div#comments div.comment h4 { + margin: 10px 0 0 0; + background-color: #2eabb0; + color: white; + border: none; + padding: 1px 4px 1px 4px; +} + +div#comments div.comment h4 { + margin: 0; +} + +div#comments div.comment h4 a { + color: #d5f4f4; +} + +div.inlinecomments div.comment div.text, +div.commentwindow div.comment div.text, +div#comments div.comment div.text { + margin: -5px 0 -5px 0; + padding: 0 10px 0 10px; +} + +div.inlinecomments div.comment div.meta, +div.commentwindow div.comment div.meta, +div#comments div.comment div.meta { + text-align: right; + padding: 2px 10px 2px 0; + font-size: 95%; + color: #538893; + border-top: 1px solid #cbe7e5; + background-color: #e0f6f4; +} + +div.commentwindow { + position: absolute; + width: 500px; + border: 1px solid #cbe7e5; + background-color: #f2fbfd; + display: none; + z-index: 130; +} + +div.commentwindow h3 { + margin: 0; + background-color: #2eabb0; + color: white; + border: none; + padding: 5px; + font-size: 1.5em; + cursor: pointer; +} + +div.commentwindow div.actions { + margin: 10px -10px 0 -10px; + padding: 4px 10px 4px 10px; + color: #538893; +} + +div.commentwindow div.actions input { + border: 1px solid #2eabb0; + background-color: white; + color: #135355; + cursor: pointer; +} + +div.commentwindow div.form { + padding: 0 10px 0 10px; +} + +div.commentwindow div.form input, +div.commentwindow div.form textarea { + border: 1px solid #3c9ea2; + background-color: white; + color: black; +} + +div.commentwindow div.error { + margin: 10px 5px 10px 5px; + background-color: #fbe5dc; + display: none; +} + +div.commentwindow div.form textarea { + width: 99%; +} + +div.commentwindow div.preview { + margin: 10px 0 10px 0; + background-color: #70d0d4; + padding: 0 1px 1px 25px; +} + +div.commentwindow div.preview h4 { + margin: 0 0 -5px -20px; + padding: 4px 0 0 4px; + color: white; + font-size: 1.3em; +} + +div.commentwindow div.preview div.comment { + background-color: #f2fbfd; +} + +div.commentwindow div.preview div.comment h4 { + margin: 10px 0 0 0!important; + padding: 1px 4px 1px 4px!important; + font-size: 1.2em; +} + +/* :::: SUGGEST CHANGES :::: */ +div#suggest-changes-box input, div#suggest-changes-box textarea { + border: 1px solid #ccc; + background-color: white; + color: black; +} + +div#suggest-changes-box textarea { + width: 99%; + height: 400px; +} + + +/* :::: PREVIEW :::: */ +div.preview { + background-image: url(style/preview.png); + padding: 0 20px 20px 20px; + margin-bottom: 30px; +} + + +/* :::: INDEX PAGE :::: */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* :::: INDEX STYLES :::: */ + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +form.pfform { + margin: 10px 0 20px 0; +} + +/* :::: GLOBAL STYLES :::: */ + +.docwarning { + background-color: #ffe4e4; + padding: 10px; + margin: 0 -20px 0 -20px; + border-bottom: 1px solid #f66; +} + +p.subhead { + font-weight: bold; + margin-top: 20px; +} + +a { + color: #355f7c; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Trebuchet MS', sans-serif; + background-color: #f2f2f2; + font-weight: normal; + color: #20435c; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +ul.fakelist { + list-style: none; + margin: 10px 0 10px 20px; + padding: 0; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +/* "Footnotes" heading */ +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +/* "Topics" */ + +div.topic { + background-color: #eee; + border: 1px solid #ccc; + padding: 0 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* Admonitions */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +div.admonition p { + display: inline; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +table.docutils { + border: 0; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 0; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +dl { + margin-bottom: 15px; + clear: both; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.refcount { + color: #060; +} + +dt:target, +.highlight { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +th { + text-align: left; + padding-right: 5px; +} + +pre { + padding: 5px; + background-color: #efc; + color: #333; + border: 1px solid #ac9; + border-left: none; + border-right: none; + overflow: auto; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +.footnote:target { background-color: #ffa } + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +form.comment { + margin: 0; + padding: 10px 30px 10px 30px; + background-color: #eee; +} + +form.comment h3 { + background-color: #326591; + color: white; + margin: -10px -30px 10px -30px; + padding: 5px; + font-size: 1.4em; +} + +form.comment input, +form.comment textarea { + border: 1px solid #ccc; + padding: 2px; + font-family: sans-serif; + font-size: 100%; +} + +form.comment input[type="text"] { + width: 240px; +} + +form.comment textarea { + width: 100%; + height: 200px; + margin-bottom: 10px; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +div.math { + text-align: center; +} + +span.eqno { + float: right; +} + +img.logo { + border: 0; +} + +/* :::: PRINT :::: */ +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0; + width : 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + div#comments div.new-comment-box, + #top-link { + display: none; + } +} diff --git a/python/formation/_static/print.css b/python/formation/_static/print.css new file mode 100644 index 0000000..fb633d8 --- /dev/null +++ b/python/formation/_static/print.css @@ -0,0 +1,5 @@ +div.header, div.relnav, #toc { display: none; } +#contentwrapper { padding: 0; margin: 0; border: none; } +body { color: black; background-color: white; } +div.footer { border-top: 1px solid #888; color: #888; margin-top: 1cm; } +div.footer a { text-decoration: none; } diff --git a/python/formation/_static/sphinx.png b/python/formation/_static/sphinx.png new file mode 100644 index 0000000000000000000000000000000000000000..f6e95217958ae0a73ee2bde7b304d27f5bbfc347 GIT binary patch literal 24398 zcmV*3Kz6^0P)nLhqjcTbKxn}aszUFC!Ti68;S0h?fBpK-wH9I!DsfWa7yjctUDeZF%JcQ#+Z zIAG&MkU$a=0_7Yw=P;XQXD5g5`u)+X`N z$rMBU{l5V7v{Et^ks0ua_EVKmQ=(3BxuHE>XwLoXU+Q3<;mt$-1vU7fP%Ct6KQDuy zBbF`>?B|2|c^mnh05APsTEH`+0P}1Q47zFlr4IB%4y~+D_?O1u=N5f_A*;b(w6$Lf z*e}4;BTB(bW#@A@^0}5pYeQ|ktbo@UU(B=h{xw)oheetF|D|j{gTbFK&%aP4|IIV? z3&8yRjJ%H0M6_7*0(=JZK95{zQQkClQ0B6(sK{$BaaHHr3ms;M$zbA`q=5aA_?SP^ zHx=ldm^(S_8=s3@km7R&|2zo)o5%Ju8+^C`2LB?Ed_CAN81t&w^SASvFrR_dXY5P# zeCG}L`7l|{jr5(1stzm$wyDI`T8pq28&$`Eh@zcP^IX7gFk*fqXKzi;4V2QhgK0-ngRDWic9ArgL&`SLb+~ z7cz9q3u^5bZ|WI@Zfvh8u$hf4GvEvE=p2s{U1(`B&&a;REJT5n`Aq$PgZ7o|}nV)YnIm{f#FnW)J5KBx2Vn+t2UN|#ybZ|z%`juKZ z_%96MzmRNyaa5mD1&fjU(1zMFmlXhZcYELHpG-sr-5eHe?H9xFk^LAvJ8xW7b>8cL`e5Il&hbDjk-7O4gl*}-FZYHeHv5ZZ`!Yas z0vNrQV$4W4FvbF2$T0PSl6)%o^@

k_`vOfH5LlR}b@zc9cP(##w1IoAR% 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 Z`ws_x7V`+%59I&=002ovPDHLkV1hiTDZ&5% literal 0 HcmV?d00001 diff --git a/python/formation/_static/sphinx.png.ori b/python/formation/_static/sphinx.png.ori new file mode 100644 index 0000000000000000000000000000000000000000..1b0d132f87798b3bd90a65628c87ea566c251fb5 GIT binary patch literal 12223 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 JRJr}={{ip~6Nvx- literal 0 HcmV?d00001 diff --git a/python/formation/_static/style.css b/python/formation/_static/style.css new file mode 100644 index 0000000..e6238d5 --- /dev/null +++ b/python/formation/_static/style.css @@ -0,0 +1,389 @@ +body { + background-color: #222; + margin: 0; + padding: 0; + font-family: 'Georgia', serif; + font-size: 15px; + color: #eee; +} + +div.footer { + border-top: 1px solid #111; + padding: 8px; + font-size: 11px; + text-align: center; + letter-spacing: 0.5px; +} + +div.footer a { + color: #eee; +} + +div.header { + margin: 0 -15px 0 -15px; + background: url(headerbg.png) repeat-x; + border-top: 6px solid #D20000; +} + +div.relnav { + border-bottom: 1px solid #111; + background: url(navigation.png); + margin: 0 -15px 0 -15px; + padding: 2px 20px 0 28px; + line-height: 25px; + color: #aaa; + font-size: 12px; + text-align: center; +} + +div.relnav a { + color: #eee; + font-weight: bold; + text-decoration: none; +} + +div.relnav a:hover { + text-decoration: underline; +} + +#content { + background-color: white; + color: #111; + border-bottom: 1px solid black; + background: url(watermark.png) center 0; + padding: 0 15px 0 15px; + margin: 0; +} + +h1 { + margin: 0; + padding: 15px 0 0 0; +} + +h1.heading { + margin: 0; + padding: 0; + height: 80px; +} + +h1.heading:hover { + background: #222; +} + +h1.heading a { + background: url(jinjabanner.png) no-repeat center 0; + display: block; + width: 100%; + height: 80px; +} + +h1.heading a:focus { + -moz-outline: none; + outline: none; +} + +h1.heading span { + display: none; +} + +#jinjalogo { + background-image: url(jinjalogo.png); + background-repeat: no-repeat; + width: 400px; + height: 160px; +} + +#contentwrapper { + max-width: 680px; + padding: 0 18px 20px 18px; + margin: 0 auto 0 auto; + border-right: 1px solid #eee; + border-left: 1px solid #eee; + background: url(watermark_blur.png) center -114px; +} + +#contentwrapper h2, +#contentwrapper h2 a { + color: #222; + font-size: 24px; + margin: 20px 0 0 0; +} + +#contentwrapper h3, +#contentwrapper h3 a { + color: #b41717; + font-size: 20px; + margin: 20px 0 0 0; +} + +table.docutils { + border-collapse: collapse; + border: 2px solid #aaa; + margin: 0.5em 1.5em 0.5em 1.5em; +} + +table.docutils td { + padding: 2px; + border: 1px solid #ddd; +} + +p, li, dd, dt, blockquote { + color: #333; +} + +blockquote { + margin: 10px 0 10px 20px; +} + +p { + line-height: 20px; + margin-bottom: 0; + margin-top: 10px; +} + +hr { + border-top: 1px solid #ccc; + border-bottom: 0; + border-right: 0; + border-left: 0; + margin-bottom: 10px; + margin-top: 20px; +} + +dl { + margin-left: 10px; +} + +li, dt { + margin-top: 5px; +} + +dt { + font-weight: bold; + color: #000; +} + +dd { + margin-top: 10px; + line-height: 20px; +} + +th { + text-align: left; + padding: 3px; + background-color: #f2f2f2; +} + +a { + color: #b41717; +} + +a:hover { + color: #444; +} + +pre { + background: #ededed url(metal.png); + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + padding: 5px; + font-size: 13px; + font-family: 'Bitstream Vera Sans Mono', 'Monaco', monospace; +} + +tt { + font-size: 13px; + font-family: 'Bitstream Vera Sans Mono', 'Monaco', monospace; + color: black; + padding: 1px 2px 1px 2px; + background-color: #fafafa; + border-bottom: 1px solid #eee; +} + +a.reference:hover tt { + border-bottom-color: #aaa; +} + +cite { + /* abusing , it's generated by ReST for `x` */ + font-size: 13px; + font-family: 'Bitstream Vera Sans Mono', 'Monaco', monospace; + font-weight: bold; + font-style: normal; +} + +div.admonition { + margin: 10px 0 10px 0; + padding: 10px 10px 10px 60px; + border: 1px solid #ccc; +} + +div.admonition p.admonition-title { + background-color: #b41717; + color: white; + margin: -10px -10px 10px -60px; + padding: 4px 10px 4px 10px; + font-weight: bold; + font-size: 15px; +} + +div.admonition p.admonition-title a { + color: white!important; +} + +div.admonition-note { + background: url(note.png) no-repeat 10px 40px; +} + +div.admonition-implementation { + background: url(implementation.png) no-repeat 10px 40px; +} + +a.headerlink { + color: #B4B4B4!important; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none!important; + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +a.headerlink:hover { + background-color: #B4B4B4; + color: #F0F0F0!important; +} + +table.indextable { + width: 100%; +} + +table.indextable td { + vertical-align: top; + width: 50%; +} + +table.indextable dl dd { + font-size: 11px; +} + +table.indextable dl dd a { + color: #000; +} + +dl.function dt, +dl.class dt, +dl.exception dt, +dl.method dt, +dl.attribute dt { + font-weight: normal; +} + +dt .descname { + font-weight: bold; + margin-right: 4px; +} + +dt .descname, dt .descclassname { + padding: 0; + background: transparent; + border-bottom: 1px solid #111; +} + +dt .descclassname { + margin-left: 2px; +} + +dl dt big { + font-size: 100%; +} + +ul.search { + margin: 10px 0 0 30px; + padding: 0; +} + +ul.search li { + margin: 10px 0 0 0; + padding: 0; +} + +ul.search div.context { + font-size: 12px; + padding: 4px 0 0 20px; + color: #888; +} + +span.highlight { + background-color: #eee; + border: 1px solid #ccc; +} + +#toc { + margin: 0 -17px 0 -17px; + display: none; +} + +#toc h3 { + float: right; + margin: 5px 5px 0 0; + padding: 0; + font-size: 12px; + color: #777; +} + +#toc h3:hover { + color: #333; + cursor: pointer; +} + +.expandedtoc { + background: #222 url(darkmetal.png); + border-bottom: 1px solid #111; + outline-bottom: 1px solid #000; + padding: 5px; +} + +.expandedtoc h3 { + color: #aaa; + margin: 0!important; +} + +.expandedtoc h3:hover { + color: white!important; +} + +#tod h3:hover { + color: white; +} + +#toc a { + color: #ddd; + text-decoration: none; +} + +#toc a:hover { + color: white; + text-decoration: underline; +} + +#toc ul { + margin: 5px 0 12px 17px; + padding: 0 7px 0 7px; +} + +#toc ul ul { + margin-bottom: 0; +} + +#toc ul li { + margin: 2px 0 0 0; +} diff --git a/python/formation/_templates/layout.html b/python/formation/_templates/layout.html new file mode 100644 index 0000000..d49988e --- /dev/null +++ b/python/formation/_templates/layout.html @@ -0,0 +1,30 @@ +{% extends "!layout.html" %} + +{% block rootrellink %} + Programmation python » +{% endblock %} + +{% block relbar1 %} +

+
+logo + +

    Programmation python

+
+
+{{ super() }} +{% endblock %} + +{% block sidebar1 %} +

 

+{% endblock %} + +{% block sidebar2 %} +
+ {{ _('Search') }} |   + + +
+{% endblock %} + + diff --git a/python/formation/classes.txt b/python/formation/classes.txt new file mode 100644 index 0000000..27c6314 --- /dev/null +++ b/python/formation/classes.txt @@ -0,0 +1,161 @@ +Définir et manipuler des classes +================================= + +.. glossary:: + + objet + + Un object est une entité possédant un type, un état, et un comportement. + Un object correspondant généralement à une entité du monde réel, mais + cette entité peut être abstraite. + On parle aussi d'**instance**. + +**état d'un objet** : ensemble de propriétés auxquelles sont associées des +valeurs. + +Les variables de l'objet sont appelées des **attributs**. +le comportement d'un :term:`objet` : + +- des actions effectuées sur l'objet +- des appels faits sur l'objet + +envois de messages à l'objet = appel de **méthodes** + +classes d'objets +------------------ + +- encapsulation (cacher les attributs (variables d'état)) d'un objet. + +- interfaces : chaque aspect d'une classe peut être vu comme une interface. + +Une interface décrit un ensemble de comportements. +on peut considérer une interface comme un protocole d'utilisation d'un objet +dans un contexte donné. + +on peut alors créer des outils qui sauront traiter n'importe quel objet +pourvu qu'il respecte une ensemble d'interfaces. + +.. todo:: travailler l'héritage, l'aggrégation, la délégation + +Voici un exemple de classe `Voiture` : + +.. literalinclude:: snippets/heritage.py + :pyobject: Voiture + +j'instancie ma classe `Voiture` : + +>>> ma_voiture = Voiture("ma_marque", "150km/h") +>>> ma_voiture.roule() +'vroummm' +>>> ma_voiture.signaletique() +'constructeur : ma_marque, vitesse_max 150km/h' + +.. todo:: faire des traitements dans l'init + +- héritage (est une sorte de) +- polymorphisme : un objet apparait comme une instance d'une classe parente + +.. literalinclude:: snippets/heritage.py + :pyobject: Turbo + +>>> v = DoDoche("marque", 160) +>>> v.get_prix() +'7000' +>>> isinstance(v, Prix) +True +>>> + +mais l'objet conserve son identité : + +>>> type(v) + + +la fonction ``achete_voiture()`` sera appelée indépendamment du type de l'objet, +du moment que l'objet a une méthode `get_prix()`, c'est le duck typing, qu'il +est préférable de ramener au polymorphisme d'objet, ou bien utiliser les :mod:`abc` +(abstract base classes). + +.. literalinclude:: snippets/heritage.py + :pyobject: achete_voiture + +tout le code : + +.. literalinclude:: snippets/heritage.py + +:download:`télécharger le code ` + +- **l'aggrégation** + +un attribut est lui-même un objet (ce qui est fréquent en python)... + +.. literalinclude:: snippets/aggregation.py + +- **la délégation** + +la fonction "property" est un élément du design de python lui-même + +.. function:: property() + +les patrons de conception +--------------------------- + +- le patron **factory** + +.. literalinclude:: snippets/patrons.py + +:download:`télécharger usine (factory) ` + +- le patron **wrapper** + +:download:`télécharger wrapper ` + +.. literalinclude:: snippets/wrap.py + +exemple d'utilisation de `Wrap()` + +>>> class O: +... pass +... +>>> o = O() +>>> o.a = "blah" +>>> +>>> from wrap import Wrap +>>> w = Wrap("monwrap", o) +>>> w._name +'monwrap' +>>> w._w +<__main__.O instance at 0x7fbf177aaa28> +>>> w._w.a +'blah' +>>> w.a +'blah' +>>> w.u +Traceback (most recent call last): + File "", line 1, in + File "wrap.py", line 11, in __getattr__ + return getattr(self._w, name) +AttributeError: O instance has no attribute 'u' +>>> + +- le patron de conception **itérable** + +:download:`télécharger iterable ` + +.. literalinclude:: snippets/iterable.py + +- le patron **decorateur** + +:download:`télécharger decorateur ` + +.. literalinclude:: snippets/decorateur.py + +>>> def deco(func): +... func.attr = 'decorated' +... return func +... +>>> @deco +... def f(): pass +... +>>> f.attr +'decorated' +>>> diff --git a/python/formation/conf.py b/python/formation/conf.py new file mode 100644 index 0000000..9511c60 --- /dev/null +++ b/python/formation/conf.py @@ -0,0 +1,244 @@ +# -*- coding: utf-8 -*- +# +# python documentation build configuration file, created by +# sphinx-quickstart on Mon Oct 29 15:39:07 2012. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.todo', 'sphinx.ext.pngmath'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.txt' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'python' +copyright = u'2012, cadoles (www.cadoles.com)' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '1' +# The full version, including alpha/beta/rc tags. +release = '0' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +language = 'fr' + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['_build'] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'pythondoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'python.tex', u'python Documentation', + u'gwen', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'python', u'python Documentation', + [u'gwen'], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------------ + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ('index', 'python', u'python Documentation', + u'gwen', 'python', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + +todo_include_todos = True diff --git a/python/formation/exercices.txt b/python/formation/exercices.txt new file mode 100644 index 0000000..2c5620d --- /dev/null +++ b/python/formation/exercices.txt @@ -0,0 +1,5 @@ +Liste des exercices +-------------------- + +.. todolist:: + diff --git a/python/formation/getting-started.txt b/python/formation/getting-started.txt new file mode 100644 index 0000000..1d381f6 --- /dev/null +++ b/python/formation/getting-started.txt @@ -0,0 +1,104 @@ +.. default-role :: literal + +Prise en main +============== + +L'objectif de ce cours est de vous apprendre à programmer en +:term:`python`. Ce cours a été fait avec :term:`sphinx`, l'outil de +gestion de documentation en python utilisé pour documenter python lui-même. + +avec python : + +- vous n'avez pas grand chose à savoir pour arriver à faire beaucoup de choses, + +- vous allez pouvoir travailler de manière + + - entièrement autonome + - rapide + - agile (au sens des méthodes agiles) + +- vous allez progresser rapidement + +- aucune connaissance préalable en programmation n'est requise + +- le hello world en une ligne:: + + python -c "print 'hello'" + +- rendre un fichier exécutable et ajouter le she bang:: + + #/usr/bin/env python + print "hello" + +.. note:: lorsqu'on lance python sur un programme, des fichiers + avec une extension `.pyc` apparaissent. + +.. glossary:: + + python + + python_ est un langage de programmation généraliste, libre, totalement + orienté objet, dynamiquement typé, semi-interprété ou, pour certaines + utilisations optimisées, compilé ou compilé à la volée (JIT). + + sphinx + + sphinx_ est un outil de documentation utilisant la syntaxe wiki + docutils_ + +- lorsqu'on lance python sans spécifier de nom de fichier, c'est l'interpréteur + python qui est lancé (le "prompt") + +Taper "python" dans votre console + +:: + + >>> print "hello world" + hello world + +:: + + >>> import this + + Beautiful is better than ugly. + Explicit is better than implicit. + Simple is better than complex. + Complex is better than complicated. + + ... + +.. seealso:: + + les modules, :ref:`namespaces` et la librairie standard + :doc:`stdlib` + +pour avoir de l'aide, taper dans le prompt : + +>>> help(function) + +usage de python +------------------ + +à peu près tous les domaines de l'informatique, du scripting système à la génération +de pdf en passant par le développement web et le développement rapide d'applications. + + +exemple : web server + +pour créer un serveur web simplement:: + + python -m SimpleHTTPServer 8000 localhost + +exemple : utiliser python pour faire un fichier de conf + +:: + + spam = "eggs" + actions = [ + ('call_view', 'com.next') + ] + + +.. _python: http://www.python.org +.. _sphinx: http://sphinx.pocoo.org +.. _docutils: http://docutils.sf.net diff --git a/python/formation/images/DocPython.png b/python/formation/images/DocPython.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd85d6829cd4c8ede75c164a336a4e3d997d7be GIT binary patch literal 137536 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%0DwO%S+TUdWRYr>E&*U_;|POxHc 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 literal 0 HcmV?d00001 diff --git a/python/formation/index.txt b/python/formation/index.txt new file mode 100644 index 0000000..431ab9a --- /dev/null +++ b/python/formation/index.txt @@ -0,0 +1,30 @@ + +apprentissage de la programmation avec python +---------------------------------------------- + +.. toctree:: + :maxdepth: 1 + + getting-started + settings + type + structures + prompt + +programmation python, connaissances de base +-------------------------------------------- +.. toctree:: + :maxdepth: 1 + + classes + specialmethods + stdlib + testsunitaires + +Index et recherche +------------------- + +* :doc:`exercices` +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/python/formation/prompt.txt b/python/formation/prompt.txt new file mode 100644 index 0000000..e0a60cb --- /dev/null +++ b/python/formation/prompt.txt @@ -0,0 +1,108 @@ +Interactions avec l'utilisateur +=============================== + +les prompts +-------------- + +`raw_input` ou `input` + +(raw_input renvoie une string, input essayes d'évaluer, soyez prudent...) + +>>> from subprocess import call +>>> filename = input("quel fichier voulez-vous afficher ?\n") +>>> call("cat " + filename, shell=True) + +.. _cmdlabel: + +le module :mod:`cmd` et les interpréteurs +-------------------------------------------- + +le monde des interpréteur ligne de commande... + +Peu après l'âge de bronze vint le temps de l'interpréteur ligne de commande, +c'est-à-dire quelque chose de plus spécifique que **l'application ligne de commande**, +ou que l'utilitaire ligne de commande. + + +Un interpréteur ligne de commande est un programme qui : + +- est forcément plein texte +- vous donne un prompt +- prends toutes ses entrées d'un coup +- produit une sortie (typiquement des lignes de texte) +- vous redonne un prompt + +Le shell unix est un bon exemple d'interpréteur ligne de commande. + +Un utilitaire ligne de commande est un programme unix-like qui prend toutes +les entrées d'un coup, et qui vous renvoie une sortie d'un coup. + +le module :mod:`cmd` : exemple d'utilisation + +.. module:: cmd + :synopsis: interpréteur ligne de commande + +.. literalinclude:: snippets/cli.py + +:download:`telecharger cmd ` + +:: + + >>> from cli import Cli + >>> prompt = Cli() + >>> prompt.cmdloop() + cli (command line interpreter) + (type help or ? for commands list) + #Prompt> ? + + Documented commands (type help ): + ========================================== + EOF exit + + Undocumented commands: + ====================== + cmd help quit + + #Prompt> + +to add a command, just use inheritance:: + + + >>> from cli import Cli + >>> class Prompt(Cli): + ... def do_hello(self, line): + ... print "hello %s", line + ... + >>> prompt = Prompt() + >>> prompt.cmdloop() + cli (command line interpreter) + (type help or ? for commands list) + #Prompt> ? + + Documented commands (type help ): + ========================================== + EOF exit + + Undocumented commands: + ====================== + cmd hello help quit + + #Prompt> hello world + + +.. todo:: faire un petit projet d'interpréteur ligne de commande du jeu C+/C- + +lire et écrire dans un fichier +------------------------------- + +les **handle de fichier** (file handles) + + +>>> +>>> fh = file('test', 'w') +>>> fh.write('hello world') +>>> fh.close() +>>> content = file('test', 'r').read() +>>> content +'hello world' +>>> diff --git a/python/formation/settings.txt b/python/formation/settings.txt new file mode 100644 index 0000000..74b8bed --- /dev/null +++ b/python/formation/settings.txt @@ -0,0 +1,96 @@ +Mettre en place son environnement de travail +============================================= + +un framework de développement intégré : :term:`IDLE` + +.. glossary:: + + IDLE + IDLE_ est un IDE (environnement de développement intégré) mis à disposition + dans la :term:`librairie standard` de python + +.. _IDLE: http://docs.python.org/2/library/idle.html + +.. glossary:: + + librairie standard + + Une des règles de base de python est qu'il existe certainement une manière + conseillé de faire une tâche en python. Le premier réflexe est d'aller + voir dans la `librairie standard`_ + +.. _`librairie standard`: http://docs.python.org/2.7/library/index.html + +Premier réflexe : la doc en ligne ou bien installée sur votre disque dur. + +la page d'accueil de la doc officielle python : + +.. image:: images/DocPython.png + +et surtout, une fois la librairie standard abordée, la page d'index des +modules : + +.. image:: images/ModuleIndex.png + +configurer son éditeur +---------------------- + +- les fichiers sources ont l'extenstion `.py` +- une instruction par ligne +- les blocs sont marqués par l'indentation (utilser 4 espaces), règler + l'éditeur pour transformer les tabulations en espaces + +configurer son prompt python +------------------------------- + +.. envvar:: PYTHONPATH + + pointe par défaut sur le répertoire courant, il est possible d'ajouter + un path + +à mettre dans votre `.bashrc` : + +:: + + export PYTHONPATH:`pwd` + export PYTHONPATH=$PYTHONPATH:'/usr/share':'/home/gwen/local + + alias pyenv='export PYTHONPATH=`pwd`:$PYTHONPATH' + export PYTHONSTARTUP='/home/gwen/.pystartup' + +.. envvar:: PYTHONSTARTUP + + les trucs à mettre dans vos pytstartups (comme dans vos .bashrc) + + - autocomplétion + - affichage de l'historique + +exemple de `.pystartup` + +à télécharger ici : :download:`snippets/pystartup` + +:: + + # Store the file in ~/.pystartup, and set an environment variable to point to + # it, e.g. "export PYTHONSTARTUP=/max/home/itamar/.pystartup" in bash. + # + # Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the full + # path to your home directory. + import rlcompleter + import readline + readline.parse_and_bind("tab: complete") + + import os + histfile = os.path.join(os.environ["HOME"], ".pyhist") + try: + readline.read_history_file(histfile) + except IOError: + pass + + import atexit + atexit.register(readline.write_history_file, histfile) + del os, histfile + + # enhanced completion + #import rlcompleter2 + #rlcompleter2.setup() diff --git a/python/formation/snippets/aggregation.py b/python/formation/snippets/aggregation.py new file mode 100644 index 0000000..3cb9c7b --- /dev/null +++ b/python/formation/snippets/aggregation.py @@ -0,0 +1,8 @@ +class A: + pass + +class B: + pass + +a = A() +a.b = B() diff --git a/python/formation/snippets/cli.py b/python/formation/snippets/cli.py new file mode 100755 index 0000000..8f65ba3 --- /dev/null +++ b/python/formation/snippets/cli.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python +# -*- coding: utf8 -*- +"""Command line interpreter +""" +import cmd + +# ____________________________________________________________ +# this Cli is a model of a basic use of a simple cmd +class Cli(cmd.Cmd): + def __init__(self): + cmd.Cmd.__init__(self) + self.doc_header = "Documented commands (type help ):" + self.undoc_header = "Undocumented commands" + self.prompt = "#Prompt> " + self.intro = """cli (command line interpreter) +(type help or ? for commands list)""" + self.ruler = "-" + + def emptyline(self): + print "Type 'exit' to finish withe the session or type ? for help." + + def default(self, line): + print "unknown command prefix" + print "*** unknown syntax : %s (type 'help' for help for a list of valid commands)"%line + self.emptyline() + + def do_exit(self, line): + """Exits from the console""" + return True + + def do_quit(self, line): + return True + + def do_EOF(self, args): + """Exit on system end of file character""" + return True + +# ____________________________________________________________ +# commands pre and post actions +# def precmd(self, line): +# return line +# def postcmd(self, stop, line): +# # if there is a problem, just return True : it stops everythings +# stop = True +# return stop # quit if stop == True +# ____________________________________________________________ +# program pre and post actions +# def preloop(self): +# # action for the beginning of the program +# pass + +# def postloop(self): +# # action for the end of the program +# print "exit cli" +# ____________________________________________________________ + +class HelloCli(Cli): + + def input_hello(self, line): + return line.replace(",", " and ") + + def output_hello(self, result): + print result + + def do_hello(self, line): + self.output_hello("hello, " + self.input_hello(line)) + #return False # if you want to stay into the cli + return True # if you want to exit + +if __name__ == '__main__': + prompt = HelloCli() + prompt.cmdloop("intro, modifies Cmd.intro") + diff --git a/python/formation/snippets/cmdline.py b/python/formation/snippets/cmdline.py new file mode 100644 index 0000000..0d3f32a --- /dev/null +++ b/python/formation/snippets/cmdline.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python + +""" +Module docstring. +""" + +import sys +import optparse + +def process_command_line(argv): + """ + Return a 2-tuple: (settings object, args list). + `argv` is a list of arguments, or `None` for ``sys.argv[1:]``. + """ + if argv is None: + argv = sys.argv[1:] + + # initialize the parser object: + parser = optparse.OptionParser( + formatter=optparse.TitledHelpFormatter(width=78), + add_help_option=None) + + # define options here: + parser.add_option( # customized description; put --help last + '-h', '--help', action='help', + help='Show this help message and exit.') + + settings, args = parser.parse_args(argv) + + # check number of arguments, verify values, etc.: + if args: + parser.error('program takes no command-line arguments; ' + '"%s" ignored.' % (args,)) + + # further process settings & args if necessary + + return settings, args + +def main(argv=None): + settings, args = process_command_line(argv) + # application code here, like: + # run(settings, args) + return 0 # success + +if __name__ == '__main__': + status = main() + sys.exit(status) diff --git a/python/formation/snippets/decorateur.py b/python/formation/snippets/decorateur.py new file mode 100644 index 0000000..8770886 --- /dev/null +++ b/python/formation/snippets/decorateur.py @@ -0,0 +1,10 @@ +def helloworld(ob): + print "Hello world" + return ob + +@helloworld +def myfunc(): + print "my function" + +myfunc() +print myfunc diff --git a/python/formation/snippets/heritage.py b/python/formation/snippets/heritage.py new file mode 100644 index 0000000..db2e19b --- /dev/null +++ b/python/formation/snippets/heritage.py @@ -0,0 +1,28 @@ +class Turbo(object): + def turbo(self): + return "VRRRRROUUUMMM" + +class Prix(object): + def get_prix(self): + raise NotImplementedError + +class Voiture(Prix, Turbo): + def __init__(self, constructeur, vitesse_max=160): + self.constructeur = constructeur + self.vitesse_max = vitesse_max + + def roule(self): + return "vroummm" + + def signaletique(self): + return "constructeur : {0}, vitesse_max {1}".format(self.constructeur, + self.vitesse_max) + +class DoDoche(Voiture): + def get_prix(self): + return "4000" + +def achete_voiture(voiture): + if not hasattr(voiture, "get_prix"): + raise TypeError("pas le bon type") + return "prix de la voiture: {0} euros".format(voiture.get_prix()) diff --git a/python/formation/snippets/iterable.py b/python/formation/snippets/iterable.py new file mode 100644 index 0000000..bce9444 --- /dev/null +++ b/python/formation/snippets/iterable.py @@ -0,0 +1,20 @@ +liste = ['blah', 'blih', 'bluh'] +iterateur = liste.__iter__() +print iterateur.next() +print iterateur.next() +print iterateur.next() +print iterateur.next() +#Traceback (most recent call last): +# File '', line 1, in ; +#StopIteration + +class Iterateur: + i = 0 + def next(self): + if self.i <= 10: raise StopIteration + self.i += 1 + return 2**self.i + def __iter__(self): return self + +iterateur = Iterateur() +for i in iterateur: print i diff --git a/python/formation/snippets/patrons.py b/python/formation/snippets/patrons.py new file mode 100644 index 0000000..fa85ac7 --- /dev/null +++ b/python/formation/snippets/patrons.py @@ -0,0 +1,15 @@ +class MaClasse: + pass + +class MaClasseDeux: + pass + +binding = dict('un'=MaClasse, 'deux'=MaClasseDeux) + +def ma_factory(key): + if key in binding: + return binding[key]() + else: + return NotFoundError("keskece?") + + diff --git a/python/formation/snippets/pystartup b/python/formation/snippets/pystartup new file mode 100644 index 0000000..a4a48de --- /dev/null +++ b/python/formation/snippets/pystartup @@ -0,0 +1,28 @@ +# Add auto-completion and a stored history file of commands to your Python +# interactive interpreter. Requires Python 2.0+, readline. Autocomplete is +# bound to the Esc key by default (you can change it - see readline docs). +# +# Store the file in ~/.pystartup, and set an environment variable to point to +# it, e.g. "export PYTHONSTARTUP=/max/home/itamar/.pystartup" in bash. +# +# Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the full +# path to your home directory. +import rlcompleter +import readline +readline.parse_and_bind("tab: complete") + +import os +histfile = os.path.join(os.environ["HOME"], ".pyhist") +try: + readline.read_history_file(histfile) +except IOError: + pass + +import atexit +atexit.register(readline.write_history_file, histfile) +del os, histfile + +# enhanced completion +#import rlcompleter2 +#rlcompleter2.setup() + diff --git a/python/formation/snippets/sorter.py b/python/formation/snippets/sorter.py new file mode 100644 index 0000000..373d2d8 --- /dev/null +++ b/python/formation/snippets/sorter.py @@ -0,0 +1,38 @@ +class Sorter: + def sort(self, list): + for i in range(len(list) - 1): + for j in range(i, len(list)): + if self.compareItems(list[i], list[j]): + list[i], list[j] = list[j], list[i] + + def getName(self): + return "Trieur de liste" + + def getDescription(self): + raise NotImplementedError + + def compareItems(self, item1, item2): + raise NotImplementedError + +class AscendantSorter(Sorter): + def compareItems(self, item1, item2): + return item1 >= item2 + def getDescription(self): + return "Tri par ordre normal" + def getName(self): + return "Ascendant" + +class DescendantSorter(Sorter): + def compareItems(self, item1, item2): + return item1 <= item2 + def getDescription(self): + return "Tri par ordre inverse" + +if __name__ == '__main__': + list = ['b', 'e', 'a', 'c', 'z'] + s = AscendantSorter() + s.sort(list) + print list + s = DescendantSorter() + s.sort(list) + print list diff --git a/python/formation/snippets/specialmethods.py b/python/formation/snippets/specialmethods.py new file mode 100644 index 0000000..88f6543 --- /dev/null +++ b/python/formation/snippets/specialmethods.py @@ -0,0 +1,10 @@ +class Zone(object): + def __init__(self, name, level=0): + self.name = name + self.level = level + + def __add__(self, other): + return Zone(self.name + other.name, level=self.level+other.level) + + def __cmp__(self, other): + return cmp(self.level, other.level) diff --git a/python/formation/snippets/wrap.py b/python/formation/snippets/wrap.py new file mode 100644 index 0000000..bf89e2d --- /dev/null +++ b/python/formation/snippets/wrap.py @@ -0,0 +1,22 @@ +class Wrap(object): + def __init__(self, name, wrap): + self.slots = ('_name', '_wrap') + self._name = name or "wrapped_element" + self._w = wrap + + def __getattr__(self, name): + if name in self.slots: + return getattr(self, name) + else: + return getattr(self._w, name) + +# def get_w(self, name): +# return getattr(self._w, name) + +# def set_w(self, name, value): +# return setattr(self._w, name, value) + +# _w = property (get_w, set_w) + + def __repr__(self): + return "[W_Element %s]"% repr(self._name) diff --git a/python/formation/specialmethods.txt b/python/formation/specialmethods.txt new file mode 100644 index 0000000..2cb5b12 --- /dev/null +++ b/python/formation/specialmethods.txt @@ -0,0 +1,229 @@ +Programmation python courante +================================ + +.. _namespaces: + +les espaces de nommage +----------------------- + +Packages et modules:: + + package/ + __init__.py + module1.py + subpackage/ + __init__.py + module2.py + +A utilser pour organiser votre projet +Permet de minimiser les risques de conflits de nome +Permet de diminuer les entrées dans le :envvar:`PYTHONPATH` + +:: + + import package.module1 + from package.subpackage import module2 + from package.subpackage.module2 import name + +- le fichier `__init__.py` +- `reload(module)` au prompt + +- dangereux : l'import "*", utiliser l'attribut spécial `__all__` pour l'import + sélectif + +:: + + from os import * + +lance un module en tant que script : + +:: + + if __name__ == "__main__": + main() + +Organisation modulaire + +- construire des composants élémentaires +- combiner ces composants +- utiliser une structure pyramidale : les composants sont les éléments de + composants plus complexes. + + +- découplage de l'ensemble en composants indépendants (gros programmes réalisables) +- donner de la structure (rendre les gros programmes compréhensibles) +- spécifier les liens entre les composants (rendre les programmes maintenables) +- identifier les sous-composants indépendants (rendre les programmes réutilisables) +- forcer l'abstraction (augmenter la sureté du programme) + +Les méthodes spéciales +----------------------- + +méthodes spéciales correspondants aux interfaces des types de bases : + +.. function:: __init__(self, *args, **kwargs) + le constructeur de l'instance d'objet + +.. function:: __add__(self, other) + + correspond à la notation `+` + +exemple : + +.. literalinclude:: snippets/specialmethods.py + +>>> from specialmethods import * +>>> z = Zone("titi", 10) +>>> z2 = Zone("tutu", 40) +>>> z > z2 +False +>>> z + z2 + +>>> z3 = z + z2 +>>> z3.name +'tititutu' +>>> z3.level +50 +>>> + +Attributs et accesseurs +--------------------------- + +python est un langage à attributs, c'est-à-dire que le protocole d'accès +aux attributs est règlable. + +>>> class C(object): +... classattr = "a class attribute" +... +>>> cobj = C() +>>> cobj.classattr +'a class attribute' +>>> cobj.insattr = "an instance attribute" +>>> cobj.insattr +'an instance attribute' +>>> C.__dict__['classattr'] +'a class attribute' +>>> cobj.__dict__['insattr'] +'an instance attribute' + +les attributs ne sont pas systématiquement encapsulées en python. + +pour contrôler l'accès aux attributs, on utilise les méthodes spéciales:: + + __getattr__(self, name) + + __setattr__(self, name, value) + + class AnObject(object): + ...... + def __setattr__(self, name, val): + if name == 'src': #do something + # this will assign the real object.name, + #despite __setattr__ + self.__dict__[name]=val + def __getattr__(self, name): + # ... + try: + func = getattr(obj, "method") + except AttributeError: + ... deal with missing method ... + else: + result = func(args) + + func = getattr(obj, "method", None) + if callable(func): + func(args) + +.. todo:: émulation de defaultdict + +Dict with a default value +-------------------------- + +il est possible d'hériter des types de base + +>>> a = dict.defaultdict(default=0) +>>> a +{} +>>> a[1] = 2 +>>> print a +{1: 2} +>>> a[0] +0 +>>> a.keys() +[1] +>>> a["machin"] +0 + +:: + + class defaultdict(dict): + + def __init__(self, default=None): + dict.__init__(self) + self.default = default + + def __getitem__(self, key): + try: + return dict.__getitem__(self, key) + except KeyError: + return self.default + + def __getitem__(self, key): + if key in self: + return dict.__getitem__(self, key) + else: + return self.default + + def get(self, key, *args): + if not args: + args = (self.default,) + return dict.get(self, key, *args) + +- un **attribut** spécial : `__slots__` + +permet de fixer les attributs possibles d'une classe + +:: + + >>> class Bar(object): + ... __slots__ = ("a","b","c") + ... + >>> b = Bar() + >>> b.a = "toto" + >>> b.a + 'toto' + >>> b.d = "titi" + Traceback (most recent call last): + File "", line 1, in ? + AttributeError: 'Bar' object has no attribute 'd' + +>>> class Point(object): +... __slots__ = 'x', 'y' +... +>>> p = Point() +>>> p.x = 2 +>>> p.y = 3 +>>> p.z = 4 +Traceback (most recent call last): + File "", line 1, in +AttributeError: 'Point' object has no attribute 'z' +>>> + +- notation `|` et notation `>` + +:: + + class Test: + nombre = 1 + def __or__(self, other): + return self.nombre + other.nombre + + def __lshift__(self, other): + self.nombre = self.nombre + other.nombre + + t1 = Test() + t2 = Test() + t2.nombre = 2 + print t1 | t2 + t1 << t2 + print t1.nombre diff --git a/python/formation/stdlib.txt b/python/formation/stdlib.txt new file mode 100644 index 0000000..e2c5594 --- /dev/null +++ b/python/formation/stdlib.txt @@ -0,0 +1,208 @@ +La :term:`librairie standard` +================================ + +.. module:: builtins + :synopsis: les fonctions directement à disposition sans import spécifique + +- le module :mod:`builtins`, tout ce qui est accessible directement + +>>> dir('__builtins__') +['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', +'__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', +'__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', +'__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', +'__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', +'__subclasshook__', '_formatter_field_name_split', '_formatter_parser', +'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', +'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', +'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', +'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', +'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', +'translate', 'upper', 'zfill'] +>>> + +- le module :mod:`subprocess`, appels systèmes + +.. module:: subprocess + :synopsis: exécuter une commande shell, récupérer le code retour et la sortie + +.. function:: subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)¶ + +>>> subprocess.call(["ls", "-l"]) +0 +>>> subprocess.call("exit 1", shell=True) +1 + +.. function:: subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False)¶ + +>>> subprocess.check_output(["echo", "Hello World!"]) +'Hello World!\n' + +>>> subprocess.check_output("exit 1", shell=True) +Traceback (most recent call last): + ... +subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1 + +- le module :mod:`sys`, paramètres et fonctions systèmes + +.. module:: sys + :synopsis: paramètres et fonctions systèmes + +.. envvar:: sys.argv + + la ligne de commande + +.. function:: sys.exit() + + terminer un programme + +.. envvar:: sys.path + + ce qu'il y a dans le :envvar:`PYTHONPATH` + +.. module:: optparse + :synopsis: parsing de la ligne de commande + +- le module :mod:`optparse` pour faire des outils ligne de commande + +module plus récent : argparse + +.. literalinclude:: snippets/cmdline.py + +- les modules de tests unitaires :mod:`unittest` et :mod:`doctests` + +.. module:: unittest + :synopsis: module de tests unitaires + +.. module:: doctest + :synopsis: module de tests unitaires basé sur les docstrings + +- le module :mod:`xml.etree` pour parser du xml + +:: + + tree = xml.parse("testFile.xml") + rootElement = tree.getroot() + bookList = rootElem.findall("Books") + if bookList != None: + for book in bookList: + #faire quelque chose avec les livres + +- le module :mod:`urllib` pour parser les urls et les manipuler (`urllib2`) + +.. module:: urllib + :synopsis: parse des urls + +.. function:: urllib.urlopen(url) + + lit une url distante + +.. module:: time + :synopsis: caculs de temps + +- :mod:`time` pour la manipulation de temps + +:: + + t1 = time.clock() + # Do Stuff Here + t2 = time.clock() + print t2 - t1 + +**now** + +:: + + import time + now = time.localtime(time.time()) + dateStr = time.strftime("%A, %B %d, %Y, %I:%M %p", now) + print dateStr + +.. module:: getpass + :synopsis: recupération des mots de passe en ligne de commande + +- le module :mod:`getpass` pour gérer les motes de passe + +>>> import getpass +>>> p = getpass.getpass() +Password: +>>> p +'toto' +>>> + + +.. module:: shelve + :synopsis: linéarisation de données + +linéarisation de données +========================== + +>>> import shelve +>>> shelve.open("database", 'c') +{} +>>> s = shelve.open("database", 'c') +>>> s +{} +>>> s["o"] = ('a', 'b', 'c') +>>> s.cl +s.clear s.close +>>> s.cl +s.clear s.close +>>> s.close() +>>> + + +.. module:: abc + :synopsis: les abstract base classes + +- le module :mod:`abc` pour faire des interfaces propres + +.. function:: abc.register(subclass) + + exemple + + :: + + from abc import ABCMeta + + class MyABC: + __metaclass__ = ABCMeta + + MyABC.register(tuple) + + assert issubclass(tuple, MyABC) + assert isinstance((), MyABC) + +.. module:: hotshot + :synopsis: benchmark + +- le module :mod:`hotshot` benchmark + +:: + + import hotshot + prof = hotshot.Profile('toto.txt') + prof.runcall(make_description) + prof.close() + + +- un exemple de librairie externe : :mod:`IPy` + +.. module:: IPy + :synopsis: traitement des ips en python < python 3.3 remplacé par ipadress + +:: + + sudo apt-get install python-ipy + +:: + + from IPy import IP + + try: + ipy = IP('{0}/{1}'.format(ip, mask), make_net=True) + except ValueError: + print "marche pas" + network = ipy.net() + broadcast = ipy.broadcast() + return broadcast, network diff --git a/python/formation/structures.txt b/python/formation/structures.txt new file mode 100644 index 0000000..0257958 --- /dev/null +++ b/python/formation/structures.txt @@ -0,0 +1,305 @@ +Structures de contrôle et fonctions +==================================== + +- tests + +>>> if "a": +... print "a" +... +a +>>> if "": +... print "hell" +... +>>> a = 2 +>>> if a == 1: +... print "un" +... else: +... print "deux" +... +deux +>>> + +.. important:: les types de base ont tous une valeur booléenne + +- itérations + +>>> for i in range(10): +... print i +... +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +>>> +>>> l = range(10) +>>> l +[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + +- tant que + +>>> i = 10 +>>> while i != 0: +... print i +... i = i -1 +... +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 +>>> + +fonctions +----------- + +>>> def blabla(x): +... """fonction qui printe""" +... print x +... +>>> + +il n'y a que des fonctions (et pas de procédures): + + +>>> def ma_func(x): +... "écrit quelque chose dans un fichier" +... +>>> ma_func("a") +>>> print ma_func("a") +None +>>> + +est équivalent à : + +>>> def ma_func(x): +... "écrit quelque chose dans un fichier" +... return None + +- arité d'une fonction: + + - paramètre non nommé + - paramètre nommé + +>>> def ma_fonction(*args, **kwargs): +... print "arguments : ", str(args) +... print "argumments nommés", str(kwargs) +... +>>> ma_fonction("toto", "titi", tutu=2, tata=3) +arguments : ('toto', 'titi') +argumments nommés {'tata': 3, 'tutu': 2} +>>> + +- signature d'une fonction : ça peut renvoyer n'importe quoi (tout ce qu'on veut) + +:term:`return` ou :term:`yield` ? + +.. glossary:: + + yield + permet de renvoyer le résultat d'une fonction en plusieurs étape + à l'aide d'un générateur + + return + résultat d'une fonction + +>>> def ma_fonction(): +... for i in range(10): +... yield i +... +>>> for i in ma_fonction(): +... print i +... +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +>>> + +- espaces de nommage à l'intérieur d'une fonction : + +>>> def toto(x): +... print vars() +... +>>> toto("sdfsdf") +{'x': 'sdfsdf'} +>>> class A(object):pass +... +>>> a = A() +>>> a.a = "titi" +>>> a.b = "toto" +>>> vars(a) +{'a': 'titi', 'b': 'toto'} + +puisque tout est objet en python, ``vars(mon_objet)`` est équivalent à +``mon_objet.__dict__`` + + +- générateurs et compréhension de liste + +les compréhensions de listes permettent de générer de nouvelles listes + +exemple : + +>>> [ 2*i for i in range(10)] +[0, 2, 4, 6, 8, 10, 12, 14, 16, 18] +>>> + +>>> [x for x in range(10) if x>5] +[6, 7, 8, 9] +>>> + +>>> [(i, j) for i in range(2,5) for j in range (4,8)] +[(2, 4), (2, 5), (2, 6), (2, 7), (3, 4), (3, 5), (3, 6), (3, 7), (4, 4), (4, 5), (4, 6), (4, 7)] +>>> + +les expressions générateurs + +>>> expr = (2*i for i in range(10)) +>>> expr + at 0x7ff9efa77cd0> +>>> for e in expr: +... print e +... +0 +2 +4 +6 +8 +10 +12 +14 +16 +18 +>>> + + +le polymorphisme paramétrique +----------------------------- + +polymorphisme exemple de contexte : +la fonction print + +>>> print 1 +1 +>>> print "1" +1 + +.. todo:: `print 1` et `print "1"` renvoient le même résultat. Pourquoi ? + +la programmation par exceptions +------------------------------------- + +>>> def function_raise(x): +... if not type(x) == int: +... raise TypeError("Pas le bon type") +... else: +... return x + 1 +... +>>> try: +... e = function_raise("une string") +... except TypeError, e: +... print e +... +Pas le bon type +>> + +.. important:: règle du Samouraï : une fonction doit renvoyer le résultat escompté + ou bien lever une exception + + +programmation objet +-------------------- + +- la programmation objet définit des classes +- le type et le protocole d'un objet sont définis par sa classe +- une classe possède un ensemble d'attributs et de méthodes + +>>> class A: +... pass +... +>>> a = A() +>>> a.a = 2 +>>> def function(x): +... print x +... +>>> a.f = function +>>> a.f("hello") +hello +>>> + +- instance de classe : on peut créer des objets à partir d'un type "classe" + (une classe est instanciable) + +- définition d'une classe : + +méthode classique : + +>>> class A: +... pass +... + +méthode dynamique (la fonction :func:`type` est ici un **constructeur** : + +>>> type("A", (), {}) + +>>> A = type("A", (), {}) +>>> a = A() +>>> type(a) + + +types et classe +~~~~~~~~~~~~~~~~~ + +affichage d'une calculette, il faut créer un type `Touche` +qui contient deux désignations : `Chiffre` et `operation`:: + + type operation = Plus | Moins | Divise + type touche = Chiffre of int | Memoire | Op of operation + +soit, on définit un type touche, soit on ne définit pas ce type:: + + type operation = Plus | Moins | Divise + type memoire = Memoire + type chiffre = Chiffre + +- les structures de données (int, str, list, dict...) : types de base +- les structures de données utilisateur : les classes ! + +.. function:: type (objname) + + :param objname: l'objet dont on veut connaître le type + +.. todo:: tout hérite de la classe `object` + +>>> object + +>>> type(object) + +>>> type(type) + +>>> type(type(type)) + +>>> isinstance(type, object) +True +>>> isinstance(object, object) +True + +**conclusion** : en python un type et une classe c'est la même chose. Une classe +est un type standard ! diff --git a/python/formation/testsunitaires.txt b/python/formation/testsunitaires.txt new file mode 100644 index 0000000..42bdc32 --- /dev/null +++ b/python/formation/testsunitaires.txt @@ -0,0 +1,153 @@ +Tests unitaires et pile d'appels +================================= + +Les tests automatiques sont un complément à la déclaration des types. + +que tester, quoi tester ? + +- que les composants interagissent bien entre eux +- que les unités (fonctions, objets...) réagissent bien à une entrée spécifique +- que le code se comporte de la manière attendue dans des environnements différents + (systèmes d'exploitation, etc...) + +les types de tests : + +- tests unitaires +- tests fonctionnels +- tests d'acceptation +- tests d'intégration + +Quel outil utiliser ? + +- la :doc:`stdlib` propose le module :mod:`unittest` + +.. module:: py.test + :synopsis: outil de test unitaires de la pylib + +- :mod:`py.test` est **le plus simple** (plus simple que unittest) + +http://pytest.org/latest/ + +:: + + def test_simple(): + "test si ma_fontion renvoie bien 3" + assert ma_fontion(2) == 3 + +- `py.test` utilise `assert` et `raises` +- `unittest` necessite de faire sytématiquement une classe, puis `assertEqual()` +- :mod:`doctest` est plus simple mais charge trop les docstrings + + +.. todo:: écrire un test unitaire avec `py.test` pour la fonction suivante + +- installer le paquet `python-pytest` + +- écrire un fichier avec une fonction dedans + +:: + + def double(x): + return x*2 + +- écrire un fichier commençant par `test_` qui teste les fonctions du fichier + +options utiles dans `py.test` +------------------------------ + +:: + + py.test --tb=no + py.test --tb=short + py.test -x (dernière erreur) + py.test -s (c'est comme nocapture en fait) + py.test -x --nocapture --pdb + py.test -xl --pdb + + py.test -k test_simple + + +utiliser la pile d'appel pour débugger +--------------------------------------- + +utiliser la pile d'appels, elle se lit de bas en haut. Il est possible de +provoquer cette pile d'appels. + +:: + + import traceback + traceback.print_exc() + + +traiter une exception avec + +:: + + try: + ... + except: + import traceback + traceback.print_exc() + + else: + bla bla + finally: + bla bla + + +créer le plus possible ses propres exceptions spécifiques au programme + +utiliser le module :mod:`pdb` + +.. module:: pdb + :synopsis: debugger de la lib standard + +:: + + import pdb + pdb.set_trace() + +depuis py.test : + +:: + + import pytest + def test_function(): + ... + pytest.set_trace() # invoke PDB debugger and tracing + + + +Remarquons que :mod:`pdb` utilise le module :mod:`cmd`, voir :ref:`cmdlabel` qu'on a déjà vu précedemment + +:: + + (Pdb) h + + Documented commands (type help ): + ======================================== + EOF bt cont enable jump pp run unt + a c continue exit l q s until + alias cl d h list quit step up + args clear debug help n r tbreak w + b commands disable ignore next restart u whatis + break condition down j p return unalias where + + Miscellaneous help topics: + ========================== + exec pdb + + Undocumented commands: + ====================== + retval rv + + (Pdb) + + +last but not least : + +utiliser pylint ou pychecker + +:: + + apt-get install pylint diff --git a/python/formation/type.txt b/python/formation/type.txt new file mode 100644 index 0000000..35801b7 --- /dev/null +++ b/python/formation/type.txt @@ -0,0 +1,625 @@ +.. default-role:: literal +.. default-domain: python + +Typage, types de base +====================== + +python est un langage dynamiquement typé. qu'est-ce que cela signifie ? + +- pas de déclaration des types (attention différent de l'inférence de types): les variables n'ont pas + de type fixé +- pas de déclaration des variables (une variable est créée au moyen de la première + affectation) + +.. todo:: créer une variable + +>>> a = 3 +>>> a +3 + +.. todo:: + +- ouvrir l'interpréteur python +- dans la console créer un objet de type integer, float, string, liste, dictionnaire +- vérifier les types à l'aide de la fonction +- vérifier que en python tout est objet +- type de base et types conteneurs +- types mutables et types immutables + +>>> a = 2 +>>> b = 3 +>>> b = 5 +>>> a +2 +>>> b +5 + +>>> l = ['a', 'b', 'c', 'd'] +>>> p = [l, 'e'] +>>> p +[['a', 'b', 'c', 'd'], 'e'] +>>> l = ['i', 'j'] +>>> p +[['a', 'b', 'c', 'd'], 'e'] +>>> l +['i', 'j'] + +.. todo:: jouer avec les types + +- l'interpréteur python comme calculette, les optérations numériques + +>>> x = 1 +>>> y =2 +>>> x > y +False +>>> x == y +False +>>> x != y +True + +- l'interpréteur pour manipuler les strings + +>>> s = "bla bla" +'bla bla' +>>> s = 'bla bla' +'bla bla' +>>> s = " 'bli bli' " +>>> s +" 'bli bli' " +>>> s = """ sdfsdf "bla bla" sdfsdf""" +>>> s +' sdfsdf "bla bla" sdfsdf' +>>> +>>> s = "bla bla" +>>> m = "hu hu" +>>> s + m +'bla blahu hu' +>>> m * 3 +'hu huhu huhu hu' +>>> +>>> len(m) +5 +>>> +>>> m[3] +'h' +>>> m[3:5] +'hu' +>>> + +>>> s= 'a' +>>> dir(s) +['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] +>>> t = "abc" +>>> t.startswith("a") +True +>>> l = ['a', 'b', 'c'] +>>> "-".join(l) +'a-b-c' +>>> + +.. todo:: lower(), upper(), strip(), title() + +.. todo: recherche et remplacement dans une string + +index(), find(), replace() + +- le module :mod:`regexp` + +.. module:: regexp + :synopsis: expression régulières + +>>> import re +>>> s = "sdf dfdfdf blah bla df" +>>> re.findall(r'\w*', s) +['sdf', '', 'dfdfdf', '', 'blah', '', 'bla', '', 'df', ''] +>>> re.findall(r'df*', s) +['df', 'df', 'df', 'df', 'df'] +>>> + +- enlever les accents + +>>> import unicodedata +>>> s = u"un été même pas chaud" +>>> import unicodedata as U +>>> s2 = ''.join(U.normalize('NFD', x)[0] for x in s) +>>> s2 +u'un ete meme pas chaud' +>>> + +- enlever la ponctuation + +>>> import re +>>> import string +>>> rgx = re.compile('[%s]' % string.punctuation) +>>> string.punctuation +'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' + +- l'encodage (unicode): + +>>> u = u"éèà bla" +>>> u +u'\xe9\xe8\xe0 bla' +>>> u.encode("utf-8") +'\xc3\xa9\xc3\xa8\xc3\xa0 bla' +>>> print u.encode("utf-8") +éèà bla +>>> + +manips importantes de traitement unicode (si on n'est pas en python 3) + +>>> u = u"ésdsfè" +>>> u +u'\xe9sdsf\xe8' +>>> print u +ésdsfè +>>> str(u) +Traceback (most recent call last): + File "", line 1, in +UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: +ordinal not in range(128) +>>> u.decode("utf-8") +Traceback (most recent call last): + File "", line 1, in + File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode + return codecs.utf_8_decode(input, errors, True) +UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: +ordinal not in range(128) +>>> u.encode("utf-8") +'\xc3\xa9sdsf\xc3\xa8' +>>> s = u.encode("utf-8") +>>> type(s) + +>>> + + # il faut utiliser .encode(), et pas .decode()... + + if type(s) == unicode #types.UnicodeType: + bla bla + + if type(s) == str: + rien à faire + +- tuples, listes, dictionnaires + +>>> t = (1,2,3) +>>> l = [1,2,3] +>>> d = {'a': 2, 'b':3, 'c':4} +>>> +>>> l = ['e','p','q','t'] +>>> l.pop() +'t' +>>> l +['e', 'p', 'q'] +>>> l +['e', 'p', 'q'] +>>> l.pop(1) +'p' +>>> l +['e', 'q'] +>>> +.. important:: utiliser get plutôt que l'accès par items lorsque l'on n'est pas sûr + +:: + + >>> d = {} + >>> d.get('toto') + >>> d['toto'] ='titi' + >>> d.get('toto') + 'titi' + >>> print d.get('toto') + titi + >>> print d.get('to') + None + >>> d['tot'] + Traceback (most recent call last): + File "", line 1, in + KeyError: 'tot' + >>> + KeyboardInterrupt + >>> + +>>> x=dict(a=23,b=45,c=67,d=89) +>>> x +{'a': 23, 'c': 67, 'b': 45, 'd': 89} +>>> y=dict.fromkeys(range(4), 'ho') +>>> y +{0: 'ho', 1: 'ho', 2: 'ho', 3: 'ho'} + +# and a new method to fetch-and-remove an item, by key: + +>>> x.pop('c') +67 +>>> x +{'a': 23, 'b': 45, 'd': 89} +>>> x.pop('z') +Traceback (most recent call last): + File "", line 1, in ? +KeyError: 'z' +>>> x.pop('z', 55) +55 + +>>> for x in enumerate('ciao'): print x +... +(0, 'c') +(1, 'i') +(2, 'a') +(3, 'o') +>>> + + +.. module:: collections + :synopsis: autres types de données + +- le module :mod:`collections` : + +- `OrderedDict`, `defaultdict` + +remarques sur les tuples + +>>> 1, +(1,) +>>> (1,) +(1,) +>>> (1) +1 +>>> () +() +>>> tuple() +() +>>> value = 1, +>>> value +(1,) + +.. todo:: addition de listes, append, tranches, tri de listes + +:: + + def remove_duplicates(lst): + ... + + l = [4, 7, 30, "hello", 7, "world", 30, 7] + remove_duplicates(l) + assert l == [4, 7, 30, "hello", "world"] + +.. todo:: defaultdict, get (avec une valeur par défaut) + +- tri de liste personnalisé : + +.. literalinclude:: snippets/sorter.py + +>>> 'a' in d +True +>>> t[1] +2 +>>> +>>> for i in l: +... print i +... +1 +2 +3 +>>> +>>> for i in d: +... print i +... +a +c +b +>>> +>>> for key, value in d.items(): +... print key, " : ", value +... +a : 2 +c : 4 +b : 3 +>>> + +.. todo:: l'interpréteur python pour l'introspection des objets + +en python, **pas besoin de déclaration de type**. Qu'est-ce que ça veut dire ? + +>>> type(1) + +>>> +>>> dir(3) +['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', +'__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', +'__format__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', +'__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__', +'__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', +'__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', +'__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', +'__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', +'__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', +'__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', +'bit_length', 'conjugate', 'denominator', 'imag', 'numerator', 'real'] +>>> +>>> type(3) + +>>> + +- Le type set + +Set + + collection non ordonnées d'éléments uniques + + +- le type set immutable et le type set mutable. +- un ensemble peut être étendu ou bien seulement englobé + +:: + + Manipulations non supportées + + >>> e["a"] + Traceback (most recent call last): + TypeError: unsubscriptable object + >>> e.append("a") + Traceback (most recent call last): + AttributeError: 'Set' object has no attribute 'append' + +Création + +Ensemble vide : + +:: + + >>> import sets + >>> e = sets.Set() + >>> e + Set([]) + + >>> import sets + >>> e = sets.Set("toto") + >>> e + Set(['t', 'o']) + >>> d = {"a":1,"b":2} + >>> f = sets.Set(d) + >>> f + Set(['a', 'b']) + +Appartenance et définition en extension + +:: + + Set(['a', 'b']) + >>> "a" in i + True + >>> len(h) + 4 + >>> for u in h: + ... print u + ... + a + b + t + o + + Ajout : +
+    >>> e.add("a")
+    >>> e
+    Set(['a'])
+    >>> e.add("b", "c")
+    Traceback (most recent call last):
+    TypeError: add() takes exactly 2 arguments (3 given)
+    >>> for i in range(5):
+    ...   e.add(i)
+    ...
+    >>> e
+    Set(['a', 0, 2, 3, 4, 1])
+    Set(['a'])
+    >>> e.add("b", "c")
+    Traceback (most recent call last):
+    TypeError: add() takes exactly 2 arguments (3 given)
+    >>> for i in range(5):
+    ...   e.add(i)
+    ...
+    >>> e
+    # Suppression :
+    
+    >>> f = e.copy()
+    >>> f
+    Set(['a', 0, 2, 3, 4, 1])
+    >>> f.remove(0)
+
+Opérations sur les ensembles
+
+::
+
+    >>> v = sets.Set()
+
+    >>> e.issubset(f)
+    False
+    >>> f.issubset(e)
+    True
+    >>> e.issuperset(f)
+    True
+    >>> f < e
+    True
+    >>> f > e
+    False
+    >>> e
+    Set(['a', 0, 2, 3, 4, 1, ImmutableSet(['p'])])
+    >>> e.copy()
+    Set(['a', 0, 2, 3, 4, 1, ImmutableSet(['p'])])
+    >>> e.remove(3)
+    >>> e
+    Set(['a', 0, 2, 4, 1, ImmutableSet(['p'])])
+    >>> 0 in e
+    True
+    >>> e.pop()
+    'a'
+    >>> e
+    Set([0, 2, 4, 1, ImmutableSet(['p'])])
+    >>> e.pop()
+    0
+    >>> e.discard(4)
+    >>> e
+    Set([2, 1, ImmutableSet(['p'])])
+    >>> e.discard("p")
+    >>> e
+    Set([2, 1, ImmutableSet(['p'])])
+    >>> e.discard(sets.Set("p"))
+    >>> e
+    Set([2, 1])
+    >>>
+    >>> e -= f
+    >>> e
+    Set([])
+    >>> f
+    Set(['a', 2, 3, 4, 1])
+    >>>
+    >>> e.clear()
+    >>> e
+    Set([])
+    >>>
+    # copy
+    >>> h == e
+    False
+    >>> h != e
+    True
+    >>> u = h.copy()
+    >>> u
+    Set(['a', 'b', 't', 'o'])
+
+Opérations ensemblistes
+
+
+::
+
+    #Pas d'opération "+" :
+    >>> h = e + f
+    Traceback (most recent call last):
+    TypeError: unsupported operand type(s) for +: 'Set' and 'Set'
+    #La réunion :
+    
+    >>> g = e or f
+    >>> g
+    Set(['t', 'o'])
+    autre notation :
+    >>> h | e
+    Set(['a', 'b', 't', 'o'])
+    >>> h & e
+    Set(['t', 'o'])
+    >>>
+    Le complémentaire :
+    >>> h = e ^ f
+    >>> h
+    Set(['a', 'b', 't', 'o'])
+    La différence :
+    >>> i = h - e
+    >>> i
+    L'intersection, la réunion, le complémentaire :
+    >>> f
+    Set(['a', 2, 3, 4, 1])
+    >>> f & e
+    Set(['a', 1, 2, 3, 4])
+    >>> f | e
+    Set(['a', 1, 2, 3, 4, 0])
+    >>> f ^ e
+    Set([0])
+
+Manipulations diverses
+
+::
+
+    >>> ''.join( sets.Set('ciao there!') & sets.Set('hello!') )
+    '!heo'
+
+    Set(['a', 0, 2, 3, 4, 1])
+    >>> f = e.copy()
+    >>> f
+    Set(['a', 0, 2, 3, 4, 1])
+    >>> f.remove(0)
+    >>> f
+    Set(['a', 2, 3, 4, 1])
+    >>> f & e
+    Set(['a', 1, 2, 3, 4])
+    >>> f | e
+    Set(['a', 1, 2, 3, 4, 0])
+    >>> f ^ e
+    Set([0])
+
+différence entre type et isinstance
+------------------------------------
+
+`type()` ne gère pas l'héritage alors que `isinstance()` si:
+
+>>> class MyClass(object):
+  def __init__(self):
+      pass
+>>> a = MyClass()
+>>> type(a) == MyClass
+True
+>>> type(a) == object
+False
+>>> isinstance(a, MyClass)
+True
+>>> isinstance(a, object)
+True
+>>>
+
+Dans la **PEP 8**, Guido demande explicitement d'utiliser isinstance et non type
+
+.. note::
+
+      citation :
+
+      Object type comparisons should always use isinstance() instead
+      of comparing types directly.
+
+        Yes: if isinstance(obj, int):
+
+        No:  if type(obj) is int:
+
+
+inférence de type
+~~~~~~~~~~~~~~~~~~~~~~
+
+.. todo:: coercion, typage dynamique, inférence de type
+
+exemple::
+
+  def addition_forte(x, y):
+    return int(x) + int(y)
+
+  def addition_faible(x, y):
+    return x + y
+
+dans `addition_faible`, il n'y a pas de casting de type, on n'essaye pas
+de transformer ça en un type donné, c'est-à-dire que si `x` et `y` sont
+compatible, ça marche. Le typage est fort, on demande des types
+
+  >>> addition_faible("1", 4)
+  TypeError: cannot concatenate 'str' and 'int' objects
+
+  >>> addition_forte("1", 4)
+  TypeError: cannot concatenate 'str' and 'int' objects
+
+  >>> addition_faible("a", "b")
+  5
+
+Remarquons que `addition_faible` renvoie forcément un type `int` tandis
+que `addition_forte` peut renvoyer un autre type, ceci est dû au
+polymorphisme paramétrique.
+
+.. todo:: en python un type et une classe, c'est la même chose
+
+.. todo:: "duck typing" en python
+
+- le typage
+
+  - typage fort
+
+    - statique : déclaration ou bien inférence (déduction) lisible dans le source
+      (exemple : java)
+
+    - typage dynamique : une variable est typée en fonction de son contenu
+
+  - typage faible :
+
+    - une donnée n'aura pas spécialement de type : les nombres, les chaînes de
+      caractères, les booléens, etc. seront tous des scalaires et ne seront
+      différenciés que par leur valeur et par le contexte de leur utilisation