From 932959d6b0b76d60fde39824a3b924153eee3dba Mon Sep 17 00:00:00 2001 From: Esther Kleinhenz Date: Thu, 27 Sep 2018 10:25:43 +0200 Subject: [PATCH] fixed table of content --- doc/graduate-thesis/.texpadtmp/Thesis.aux | 22 + doc/graduate-thesis/.texpadtmp/Thesis.bbl | 0 doc/graduate-thesis/.texpadtmp/Thesis.blg | 48 ++ doc/graduate-thesis/.texpadtmp/Thesis.log | 613 ++++++++++++++++++ doc/graduate-thesis/.texpadtmp/Thesis.out | 1 + doc/graduate-thesis/.texpadtmp/Thesis.toc | 5 + doc/graduate-thesis/Chapters/Chapter1.aux | 0 ...fentlichung_der_Abschlussarbeit_public.pdf | Bin 0 -> 161037 bytes thesisenv/bin/easy_install | 13 +- thesisenv/bin/easy_install-3.6 | 13 +- .../site-packages/pkg_resources/__init__.py | 69 +- .../pkg_resources/_vendor/appdirs.py | 86 +-- .../pkg_resources/_vendor/pyparsing.py | 54 +- .../pkg_resources/extern/__init__.py | 2 +- .../site-packages/pkg_resources/py31compat.py | 5 +- .../DESCRIPTION.rst | 36 + .../setuptools-39.0.1.dist-info/INSTALLER | 1 + .../setuptools-39.0.1.dist-info/LICENSE.txt | 19 + .../setuptools-39.0.1.dist-info/METADATA | 71 ++ .../setuptools-39.0.1.dist-info/RECORD | 188 ++++++ .../setuptools-39.0.1.dist-info/WHEEL | 6 + .../dependency_links.txt | 2 + .../entry_points.txt | 65 ++ .../setuptools-39.0.1.dist-info/metadata.json | 1 + .../setuptools-39.0.1.dist-info/top_level.txt | 3 + .../setuptools-39.0.1.dist-info/zip-safe | 1 + .../site-packages/setuptools/__init__.py | 15 +- .../setuptools/_vendor/pyparsing.py | 54 +- .../site-packages/setuptools/build_meta.py | 15 +- .../setuptools/command/bdist_egg.py | 2 +- .../setuptools/command/build_ext.py | 12 +- .../setuptools/command/develop.py | 4 +- .../setuptools/command/easy_install.py | 17 +- .../setuptools/command/egg_info.py | 59 +- .../setuptools/command/register.py | 14 +- .../site-packages/setuptools/command/test.py | 4 +- .../setuptools/command/upload.py | 11 - .../site-packages/setuptools/config.py | 68 +- .../site-packages/setuptools/dist.py | 43 +- .../setuptools/extern/__init__.py | 2 +- .../site-packages/setuptools/monkey.py | 18 + .../site-packages/setuptools/msvc.py | 3 +- .../site-packages/setuptools/package_index.py | 26 +- .../site-packages/setuptools/pep425tags.py | 11 +- .../site-packages/setuptools/py31compat.py | 15 +- .../site-packages/setuptools/py33compat.py | 3 +- .../setuptools/script (dev).tmpl | 3 +- .../site-packages/setuptools/site-patch.py | 2 +- .../site-packages/setuptools/wheel.py | 215 +++--- 49 files changed, 1386 insertions(+), 554 deletions(-) create mode 100644 doc/graduate-thesis/.texpadtmp/Thesis.aux create mode 100644 doc/graduate-thesis/.texpadtmp/Thesis.bbl create mode 100644 doc/graduate-thesis/.texpadtmp/Thesis.blg create mode 100644 doc/graduate-thesis/.texpadtmp/Thesis.log create mode 100644 doc/graduate-thesis/.texpadtmp/Thesis.out create mode 100644 doc/graduate-thesis/.texpadtmp/Thesis.toc create mode 100644 doc/graduate-thesis/Chapters/Chapter1.aux create mode 100644 doc/graduate-thesis/Pruefungsrechtliche_Erklaerung_und_Erklaerung_zur_Veroeffentlichung_der_Abschlussarbeit_public.pdf create mode 100644 thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/DESCRIPTION.rst create mode 100644 thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/INSTALLER create mode 100644 thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/LICENSE.txt create mode 100644 thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/METADATA create mode 100644 thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/RECORD create mode 100644 thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/WHEEL create mode 100644 thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/dependency_links.txt create mode 100644 thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/entry_points.txt create mode 100644 thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/metadata.json create mode 100644 thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/top_level.txt create mode 100644 thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/zip-safe diff --git a/doc/graduate-thesis/.texpadtmp/Thesis.aux b/doc/graduate-thesis/.texpadtmp/Thesis.aux new file mode 100644 index 0000000..7715473 --- /dev/null +++ b/doc/graduate-thesis/.texpadtmp/Thesis.aux @@ -0,0 +1,22 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\catcode `"\active +\babel@aux{ngerman}{} +\@writefile{toc}{\contentsline {chapter}{Abstrakt}{1}{dummy.1}} +\@writefile{toc}{\vspace {1em}\global \let \gdef empty{empty} } diff --git a/doc/graduate-thesis/.texpadtmp/Thesis.bbl b/doc/graduate-thesis/.texpadtmp/Thesis.bbl new file mode 100644 index 0000000..e69de29 diff --git a/doc/graduate-thesis/.texpadtmp/Thesis.blg b/doc/graduate-thesis/.texpadtmp/Thesis.blg new file mode 100644 index 0000000..8ae3b3d --- /dev/null +++ b/doc/graduate-thesis/.texpadtmp/Thesis.blg @@ -0,0 +1,48 @@ +This is BibTeX, Version 0.99d (TeX Live 2018) +Capacity: max_strings=100000, hash_size=100000, hash_prime=85009 +The top-level auxiliary file: /Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.aux +I found no \citation commands---while reading file /Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.aux +I found no \bibdata command---while reading file /Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.aux +I found no \bibstyle command---while reading file /Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.aux +You've used 0 entries, + 0 wiz_defined-function locations, + 83 strings with 594 characters, +and the built_in function-call counts, 0 in all, are: += -- 0 +> -- 0 +< -- 0 ++ -- 0 +- -- 0 +* -- 0 +:= -- 0 +add.period$ -- 0 +call.type$ -- 0 +change.case$ -- 0 +chr.to.int$ -- 0 +cite$ -- 0 +duplicate$ -- 0 +empty$ -- 0 +format.name$ -- 0 +if$ -- 0 +int.to.chr$ -- 0 +int.to.str$ -- 0 +missing$ -- 0 +newline$ -- 0 +num.names$ -- 0 +pop$ -- 0 +preamble$ -- 0 +purify$ -- 0 +quote$ -- 0 +skip$ -- 0 +stack$ -- 0 +substring$ -- 0 +swap$ -- 0 +text.length$ -- 0 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 0 +warning$ -- 0 +while$ -- 0 +width$ -- 0 +write$ -- 0 +(There were 3 error messages) diff --git a/doc/graduate-thesis/.texpadtmp/Thesis.log b/doc/graduate-thesis/.texpadtmp/Thesis.log new file mode 100644 index 0000000..eb74b25 --- /dev/null +++ b/doc/graduate-thesis/.texpadtmp/Thesis.log @@ -0,0 +1,613 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) (preloaded format=pdflatex 2018.6.7) 27 SEP 2018 10:23 +entering extended mode + \write18 enabled. + file:line:error style messages enabled. + %&-line parsing enabled. +**Thesis.tex +(./Thesis.tex +LaTeX2e <2018-04-01> patch level 2 +Babel <3.18> and hyphenation patterns for 84 language(s) loaded. +(./Thesis.cls +Document Class: Thesis 2007/22/02 v1.0 LaTeX document class +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/book.cls +Document Class: book 2014/09/29 v1.4h Standard LaTeX document class +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/bk12.clo +File: bk12.clo 2014/09/29 v1.4h Standard LaTeX file (size option) +) +\c@part=\count80 +\c@chapter=\count81 +\c@section=\count82 +\c@subsection=\count83 +\c@subsubsection=\count84 +\c@paragraph=\count85 +\c@subparagraph=\count86 +\c@figure=\count87 +\c@table=\count88 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/setspace/setspace.sty +Package: setspace 2011/12/19 v6.7a set line spacing +) (/usr/local/texlive/2018/texmf-dist/tex/latex/vmargin/vmargin.sty +Package: vmargin 2004/07/15 V2.5 set document margins (VK) + +Package: vmargin 2004/07/15 V2.5 set document margins (VK) +\PaperWidth=\dimen103 +\PaperHeight=\dimen104 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +Package: fancyhdr 2017/06/30 v3.9a Extensive control of page headers and footers +\f@nch@headwidth=\skip43 +\f@nch@O@elh=\skip44 +\f@nch@O@erh=\skip45 +\f@nch@O@olh=\skip46 +\f@nch@O@orh=\skip47 +\f@nch@O@elf=\skip48 +\f@nch@O@erf=\skip49 +\f@nch@O@olf=\skip50 +\f@nch@O@orf=\skip51 +) +\c@theorem=\count89 + (/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2016/02/21 v3.3-144 Customizing captions (AR) + (/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2016/05/22 v1.7-166 caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 67. + (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@ContinuedFloat=\count90 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen112 +\Gin@req@width=\dimen113 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf.sty +Package: epstopdf 2016/05/15 v2.6 Conversion with epstopdf on the fly (HO) + (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +))) (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/01/30 v0.27 Utility functions of pdfTeX for LuaTeX (HO) + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 438. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPEG,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + (/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live +))) (/usr/local/texlive/2018/texmf-dist/tex/latex/subfigure/subfigure.sty +Package: subfigure 2002/03/15 v2.1.5 subfigure package +\subfigtopskip=\skip52 +\subfigcapskip=\skip53 +\subfigcaptopadj=\dimen114 +\subfigbottomskip=\skip54 +\subfigcapmargin=\dimen115 +\subfiglabelskip=\skip55 +\c@subfigure=\count91 +\c@lofdepth=\count92 +\c@subtable=\count93 +\c@lotdepth=\count94 + +**************************************** +* Local config file subfigure.cfg used * +**************************************** +(/usr/local/texlive/2018/texmf-dist/tex/latex/subfigure/subfigure.cfg) +\subfig@top=\skip56 +\subfig@bottom=\skip57 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/booktabs/booktabs.sty +Package: booktabs 2016/04/27 v1.618033 publication quality tables +\heavyrulewidth=\dimen116 +\lightrulewidth=\dimen117 +\cmidrulewidth=\dimen118 +\belowrulesep=\dimen119 +\belowbottomsep=\dimen120 +\aboverulesep=\dimen121 +\abovetopsep=\dimen122 +\cmidrulesep=\dimen123 +\cmidrulekern=\dimen124 +\defaultaddspace=\dimen125 +\@cmidla=\count95 +\@cmidlb=\count96 +\@aboverulesep=\dimen126 +\@belowrulesep=\dimen127 +\@thisruleclass=\count97 +\@lastruleclass=\count98 +\@thisrulewidth=\dimen128 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/rotating.sty +Package: rotating 2016/08/11 v2.16d rotated objects in LaTeX + (/usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) +) +\c@r@tfl@t=\count99 +\rotFPtop=\skip58 +\rotFPbot=\skip59 +\rot@float@box=\box26 +\rot@mess@toks=\toks15 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count100 +\lst@gtempboxa=\box27 +\lst@token=\toks16 +\lst@length=\count101 +\lst@currlwidth=\dimen129 +\lst@column=\count102 +\lst@pos=\count103 +\lst@lostspace=\dimen130 +\lst@width=\dimen131 +\lst@newlines=\count104 +\lst@lineno=\count105 +\lst@maxwidth=\dimen132 + (./lstpatch.sty) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz) +\c@lstnumber=\count106 +\lst@skipnumbers=\count107 +\lst@framebox=\box28 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2015/06/04 1.6 listings configuration +)) +Package: listings 2015/06/04 1.6 (Carsten Heinz) + (./lstpatch.sty) (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2018/02/06 v6.86b Hypertext links for LaTeX + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO) + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO) +Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO) +Package hobsub Info: Skipping package `infwarerr' (already loaded). +Package hobsub Info: Skipping package `ltxcmds' (already loaded). +Package hobsub Info: Skipping package `ifluatex' (already loaded). +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) +Package hobsub Info: Skipping package `ifpdf' (already loaded). +Package hobsub Info: Skipping package `etexcmds' (already loaded). +Package hobsub Info: Skipping package `kvsetkeys' (already loaded). +Package hobsub Info: Skipping package `kvdefinekeys' (already loaded). +Package hobsub Info: Skipping package `pdftexcmds' (already loaded). +Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO) +Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) +Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) +Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) +Package: xcolor-patch 2016/05/16 xcolor patch +Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) +Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) +Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) +) (/usr/local/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) +) +\@linkdim=\dimen133 +\Hy@linkcounter=\count108 +\Hy@pagecounter=\count109 + (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2018/02/06 v6.86b Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +\Hy@SavedSpaceFactor=\count110 + (/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Option `bookmarks' set `true' on input line 4383. +Package hyperref Info: Option `bookmarksopen' set `true' on input line 4383. +Package hyperref Info: Option `bookmarksnumbered' set `true' on input line 4383. +Package hyperref Info: Option `hypertexnames' set `false' on input line 4383. +Package hyperref Info: Option `colorlinks' set `true' on input line 4383. +Package hyperref Info: Option `unicode' set `true' on input line 4383. + (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/puenc.def +File: puenc.def 2018/02/06 v6.86b Hyperref: PDF Unicode definition (HO) +Now handling font encoding PU ... +... no UTF-8 mapping file for font encoding PU +) +Package hyperref Info: Option `breaklinks' set `true' on input line 4383. +Package hyperref Info: Hyper figures OFF on input line 4509. +Package hyperref Info: Link nesting OFF on input line 4514. +Package hyperref Info: Hyper index ON on input line 4517. +Package hyperref Info: Plain pages OFF on input line 4524. +Package hyperref Info: Backreferencing OFF on input line 4529. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4762. +\c@Hy@tempcnt=\count111 + (/usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5115. +\XeTeXLinkMargin=\dimen134 +\Fld@menulength=\count112 +\Field@Width=\dimen135 +\Fld@charsize=\dimen136 +Package hyperref Info: Hyper figures OFF on input line 6369. +Package hyperref Info: Link nesting OFF on input line 6374. +Package hyperref Info: Hyper index ON on input line 6377. +Package hyperref Info: backreferencing OFF on input line 6384. +Package hyperref Info: Link coloring ON on input line 6387. +Package hyperref Info: Link coloring with OCG OFF on input line 6394. +Package hyperref Info: PDF/A mode OFF on input line 6399. +LaTeX Info: Redefining \ref on input line 6439. +LaTeX Info: Redefining \pageref on input line 6443. +\Hy@abspage=\count113 +\c@Item=\count114 +\c@Hfootnote=\count115 +) +Package hyperref Info: Driver (autodetected): hpdftex. + (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2018/02/06 v6.86b Hyperref driver for pdfTeX +\Fld@listcount=\count116 +\c@bookmark@seq@number=\count117 + (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 282. +) +\Hy@SectionHShift=\skip60 +) +\c@dummy=\count118 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/natbib/natbib.sty +Package: natbib 2010/09/13 8.31b (PWD, AO) +\bibhang=\skip61 +\bibsep=\skip62 +LaTeX Info: Redefining \cite on input line 694. +\c@NAT@ctr=\count119 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/tools/verbatim.sty +Package: verbatim 2014/10/28 v1.5q LaTeX2e package for verbatim enhancements +\every@verbatim=\toks17 +\verbatim@line=\toks18 +\verbatim@in@stream=\read1 +) (./vector.sty) (/usr/local/texlive/2018/texmf-dist/tex/latex/titlesec/titlesec.sty +Package: titlesec 2016/03/21 v2.10.2 Sectioning titles +\ttl@box=\box29 +\beforetitleunit=\skip63 +\aftertitleunit=\skip64 +\ttl@plus=\dimen137 +\ttl@minus=\dimen138 +\ttl@toksa=\toks19 +\titlewidth=\dimen139 +\titlewidthlast=\dimen140 +\titlewidthfirst=\dimen141 +) (/usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2018/02/14 3.18 The Babel package + (/usr/local/texlive/2018/texmf-dist/tex/generic/babel/switch.def +File: switch.def 2018/02/14 3.18 Babel switching mechanism +) (/usr/local/texlive/2018/texmf-dist/tex/generic/babel-german/ngerman.ldf +Language: ngerman 2018/03/29 v2.10 German support for babel (post-1996 orthography) + (/usr/local/texlive/2018/texmf-dist/tex/generic/babel-german/ngermanb.ldf +Language: ngermanb 2018/03/29 v2.10 German support for babel (post-1996 orthography) + (/usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2018/02/14 3.18 Babel common definitions +\babel@savecnt=\count120 +\U@D=\dimen142 + (/usr/local/texlive/2018/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@dirlevel=\count121 +) +Package babel Info: Making " an active character on input line 121. +))) +Package hyperref Info: Option `colorlinks' set `true' on input line 15. + (/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.aux) +\openout1 = `Thesis.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 18. +LaTeX Font Info: ... okay on input line 18. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 18. +LaTeX Font Info: ... okay on input line 18. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 18. +LaTeX Font Info: ... okay on input line 18. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 18. +LaTeX Font Info: ... okay on input line 18. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 18. +LaTeX Font Info: ... okay on input line 18. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 18. +LaTeX Font Info: ... okay on input line 18. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 18. +LaTeX Font Info: ... okay on input line 18. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 18. +LaTeX Font Info: ... okay on input line 18. +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: hyperref package is loaded. +Package caption Info: listings package is loaded. +Package caption Info: rotating package is loaded. +Package caption Info: subfigure package is loaded. +Package caption Info: End \AtBeginDocument code. + (/usr/local/texlive/2018/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count122 +\scratchdimen=\dimen143 +\scratchbox=\box30 +\nofMPsegments=\count123 +\nofMParguments=\count124 +\everyMPshowfont=\toks20 +\MPscratchCnt=\count125 +\MPscratchDim=\dimen144 +\MPnumerator=\count126 +\makeMPintoPDFobject=\count127 +\everyMPtoPDFconversion=\toks21 +) +\c@lstlisting=\count128 +\AtBeginShipoutBox=\box31 + (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/color.sty +Package: color 2016/07/10 v1.1e Standard LaTeX Color (DPC) + (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package color Info: Driver file: pdftex.def on input line 147. +) +Package hyperref Info: Link coloring ON on input line 18. + (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section + (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) +) +\c@section@level=\count129 +) +LaTeX Info: Redefining \ref on input line 18. +LaTeX Info: Redefining \pageref on input line 18. +LaTeX Info: Redefining \nameref on input line 18. + (/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.out) (/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.out) +\@outlinefile=\write3 +\openout3 = `Thesis.out'. + + +------------------------------------------------------------------------------ + Title Page +------------------------------------------------------------------------------ +./Thesis.tex:31: Undefined control sequence. +\maketitle ... \setlength {\parskip }{0pt} {\text + {\univname }\par } {\facna... +l.31 \maketitle + +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +[1 + + +{/usr/local/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] +------------------------------------------------------------------------------ + Abstract Page +------------------------------------------------------------------------------ +./Thesis.tex:46: Undefined control sequence. +\abstract ...tyle {empty} \begin {center} {{\text + {Abstrakt}} \par } \bigski... +l.46 \abstract + { +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +[1 + +] +------------------------------------------------------------------------------ + Table of Contents +------------------------------------------------------------------------------ +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc (/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: Undefined control sequence. +\contentsline ...up \Hy@safe@activestrue \edef \x + {\endgroup \def \noexpand ... +l.2 \vspace + {1em}\global \let \gdef empty{empty} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: TeX capacity exceeded, sorry [text input levels=15]. +\@filef@und ->Thesis.toc + +l.2 \vspace + {1em}\global \let \gdef empty{empty} +If you really absolutely need more capacity, +you can ask a wizard to enlarge me. + + +Here is how much of TeX's memory you used: + 12492 strings out of 492649 + 180801 string characters out of 6129623 + 261897 words of memory out of 5000000 + 16223 multiletter control sequences out of 15000+600000 + 4851 words of font info for 18 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 60i,5n,99p,13210b,357s stack positions out of 5000i,500n,10000p,200000b,80000s +/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.toc:2: ==> Fatal error occurred, no output PDF file produced! diff --git a/doc/graduate-thesis/.texpadtmp/Thesis.out b/doc/graduate-thesis/.texpadtmp/Thesis.out new file mode 100644 index 0000000..688986c --- /dev/null +++ b/doc/graduate-thesis/.texpadtmp/Thesis.out @@ -0,0 +1 @@ +\BOOKMARK [0][-]{dummy.1}{\376\377\000A\000b\000s\000t\000r\000a\000k\000t}{}% 1 diff --git a/doc/graduate-thesis/.texpadtmp/Thesis.toc b/doc/graduate-thesis/.texpadtmp/Thesis.toc new file mode 100644 index 0000000..5c3a8c5 --- /dev/null +++ b/doc/graduate-thesis/.texpadtmp/Thesis.toc @@ -0,0 +1,5 @@ +\contentsline {chapter}{Abstrakt}{} +\vspace {1em}\global \let \gdef empty{empty} +\vspace {2em} +\vspace {2em} +\contentsline {chapter}{}{} diff --git a/doc/graduate-thesis/Chapters/Chapter1.aux b/doc/graduate-thesis/Chapters/Chapter1.aux new file mode 100644 index 0000000..e69de29 diff --git a/doc/graduate-thesis/Pruefungsrechtliche_Erklaerung_und_Erklaerung_zur_Veroeffentlichung_der_Abschlussarbeit_public.pdf b/doc/graduate-thesis/Pruefungsrechtliche_Erklaerung_und_Erklaerung_zur_Veroeffentlichung_der_Abschlussarbeit_public.pdf new file mode 100644 index 0000000000000000000000000000000000000000..64bf95fe9cfa2b5caa143d250fd088a748f941e7 GIT binary patch literal 161037 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%0DQ-|rk+SWuGYiX%Z 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%0A}f&g#2_UcM50PTm95{pVstg;y>jAEM}~;< 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 literal 0 HcmV?d00001 diff --git a/thesisenv/bin/easy_install b/thesisenv/bin/easy_install index c9d18c5..304eb0f 100755 --- a/thesisenv/bin/easy_install +++ b/thesisenv/bin/easy_install @@ -1,12 +1,11 @@ -#!/Users/Esthi/thesis_ek/thesisenv/bin/python -# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==33.1.1','console_scripts','easy_install' -__requires__ = 'setuptools==33.1.1' +#!/Users/Esthi/thesis_ek/thesisenv/bin/python3 + +# -*- coding: utf-8 -*- import re import sys -from pkg_resources import load_entry_point + +from setuptools.command.easy_install import main if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit( - load_entry_point('setuptools==33.1.1', 'console_scripts', 'easy_install')() - ) + sys.exit(main()) diff --git a/thesisenv/bin/easy_install-3.6 b/thesisenv/bin/easy_install-3.6 index 4449957..304eb0f 100755 --- a/thesisenv/bin/easy_install-3.6 +++ b/thesisenv/bin/easy_install-3.6 @@ -1,12 +1,11 @@ -#!/Users/Esthi/thesis_ek/thesisenv/bin/python -# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==33.1.1','console_scripts','easy_install-3.6' -__requires__ = 'setuptools==33.1.1' +#!/Users/Esthi/thesis_ek/thesisenv/bin/python3 + +# -*- coding: utf-8 -*- import re import sys -from pkg_resources import load_entry_point + +from setuptools.command.easy_install import main if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit( - load_entry_point('setuptools==33.1.1', 'console_scripts', 'easy_install-3.6')() - ) + sys.exit(main()) diff --git a/thesisenv/lib/python3.6/site-packages/pkg_resources/__init__.py b/thesisenv/lib/python3.6/site-packages/pkg_resources/__init__.py index 86ec341..8d95bd2 100644 --- a/thesisenv/lib/python3.6/site-packages/pkg_resources/__init__.py +++ b/thesisenv/lib/python3.6/site-packages/pkg_resources/__init__.py @@ -47,11 +47,6 @@ except ImportError: # Python 3.2 compatibility import imp as _imp -try: - FileExistsError -except NameError: - FileExistsError = OSError - from pkg_resources.extern import six from pkg_resources.extern.six.moves import urllib, map, filter @@ -83,11 +78,8 @@ __import__('pkg_resources.extern.packaging.requirements') __import__('pkg_resources.extern.packaging.markers') -__metaclass__ = type - - -if (3, 0) < sys.version_info < (3, 4): - raise RuntimeError("Python 3.4 or later is required") +if (3, 0) < sys.version_info < (3, 3): + raise RuntimeError("Python 3.3 or later is required") if six.PY2: # Those builtin exceptions are only defined in Python 3 @@ -385,7 +377,11 @@ def get_build_platform(): XXX Currently this is the same as ``distutils.util.get_platform()``, but it needs some hacks for Linux and Mac OS X. """ - from sysconfig import get_platform + try: + # Python 2.7 or >=3.2 + from sysconfig import get_platform + except ImportError: + from distutils.util import get_platform plat = get_platform() if sys.platform == "darwin" and not plat.startswith('macosx-'): @@ -545,7 +541,7 @@ class IResourceProvider(IMetadataProvider): """List of resource names in the directory (like ``os.listdir()``)""" -class WorkingSet: +class WorkingSet(object): """A collection of active distributions on sys.path (or a similar list)""" def __init__(self, entries=None): @@ -645,12 +641,13 @@ class WorkingSet: distributions in the working set, otherwise only ones matching both `group` and `name` are yielded (in distribution order). """ - return ( - entry - for dist in self - for entry in dist.get_entry_map(group).values() - if name is None or name == entry.name - ) + for dist in self: + entries = dist.get_entry_map(group) + if name is None: + for ep in entries.values(): + yield ep + elif name in entries: + yield entries[name] def run_script(self, requires, script_name): """Locate distribution for `requires` and run `script_name` script""" @@ -951,7 +948,7 @@ class _ReqExtras(dict): return not req.marker or any(extra_evals) -class Environment: +class Environment(object): """Searchable snapshot of distributions on a search path""" def __init__( @@ -966,7 +963,7 @@ class Environment: `platform` is an optional string specifying the name of the platform that platform-specific distributions must be compatible with. If unspecified, it defaults to the current platform. `python` is an - optional string naming the desired version of Python (e.g. ``'3.6'``); + optional string naming the desired version of Python (e.g. ``'3.3'``); it defaults to the current version. You may explicitly set `platform` (and/or `python`) to ``None`` if you @@ -1521,10 +1518,12 @@ class DefaultProvider(EggProvider): @classmethod def _register(cls): - loader_names = 'SourceFileLoader', 'SourcelessFileLoader', - for name in loader_names: - loader_cls = getattr(importlib_machinery, name, type(None)) - register_loader_type(loader_cls, cls) + loader_cls = getattr( + importlib_machinery, + 'SourceFileLoader', + type(None), + ) + register_loader_type(loader_cls, cls) DefaultProvider._register() @@ -2286,7 +2285,7 @@ EGG_NAME = re.compile( ).match -class EntryPoint: +class EntryPoint(object): """Object representing an advertised importable object""" def __init__(self, name, module_name, attrs=(), extras=(), dist=None): @@ -2440,7 +2439,7 @@ def _version_from_file(lines): return safe_version(value.strip()) or None -class Distribution: +class Distribution(object): """Wrap an actual or potential sys.path entry w/metadata""" PKG_INFO = 'PKG-INFO' @@ -2670,19 +2669,6 @@ class Distribution: raise AttributeError(attr) return getattr(self._provider, attr) - def __dir__(self): - return list( - set(super(Distribution, self).__dir__()) - | set( - attr for attr in self._provider.__dir__() - if not attr.startswith('_') - ) - ) - - if not hasattr(object, '__dir__'): - # python 2.7 not supported - del __dir__ - @classmethod def from_filename(cls, filename, metadata=None, **kw): return cls.from_location( @@ -3034,10 +3020,7 @@ def _bypass_ensure_directory(path): dirname, filename = split(path) if dirname and filename and not isdir(dirname): _bypass_ensure_directory(dirname) - try: - mkdir(dirname, 0o755) - except FileExistsError: - pass + mkdir(dirname, 0o755) def split_sections(s): diff --git a/thesisenv/lib/python3.6/site-packages/pkg_resources/_vendor/appdirs.py b/thesisenv/lib/python3.6/site-packages/pkg_resources/_vendor/appdirs.py index ae67001..f4dba09 100644 --- a/thesisenv/lib/python3.6/site-packages/pkg_resources/_vendor/appdirs.py +++ b/thesisenv/lib/python3.6/site-packages/pkg_resources/_vendor/appdirs.py @@ -13,7 +13,7 @@ See for details and usage. # - Mac OS X: http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/index.html # - XDG spec for Un*x: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html -__version_info__ = (1, 4, 3) +__version_info__ = (1, 4, 0) __version__ = '.'.join(map(str, __version_info__)) @@ -98,7 +98,7 @@ def user_data_dir(appname=None, appauthor=None, version=None, roaming=False): def site_data_dir(appname=None, appauthor=None, version=None, multipath=False): - r"""Return full path to the user-shared data dir for this application. + """Return full path to the user-shared data dir for this application. "appname" is the name of application. If None, just the system directory is returned. @@ -117,7 +117,7 @@ def site_data_dir(appname=None, appauthor=None, version=None, multipath=False): returned, or '/usr/local/share/', if XDG_DATA_DIRS is not set - Typical site data directories are: + Typical user data directories are: Mac OS X: /Library/Application Support/ Unix: /usr/local/share/ or /usr/share/ Win XP: C:\Documents and Settings\All Users\Application Data\\ @@ -184,13 +184,13 @@ def user_config_dir(appname=None, appauthor=None, version=None, roaming=False): for a discussion of issues. - Typical user config directories are: + Typical user data directories are: Mac OS X: same as user_data_dir Unix: ~/.config/ # or in $XDG_CONFIG_HOME, if defined Win *: same as user_data_dir For Unix, we follow the XDG spec and support $XDG_CONFIG_HOME. - That means, by default "~/.config/". + That means, by deafult "~/.config/". """ if system in ["win32", "darwin"]: path = user_data_dir(appname, appauthor, None, roaming) @@ -204,7 +204,7 @@ def user_config_dir(appname=None, appauthor=None, version=None, roaming=False): def site_config_dir(appname=None, appauthor=None, version=None, multipath=False): - r"""Return full path to the user-shared data dir for this application. + """Return full path to the user-shared data dir for this application. "appname" is the name of application. If None, just the system directory is returned. @@ -222,7 +222,7 @@ def site_config_dir(appname=None, appauthor=None, version=None, multipath=False) returned. By default, the first item from XDG_CONFIG_DIRS is returned, or '/etc/xdg/', if XDG_CONFIG_DIRS is not set - Typical site config directories are: + Typical user data directories are: Mac OS X: same as site_data_dir Unix: /etc/xdg/ or $XDG_CONFIG_DIRS[i]/ for each value in $XDG_CONFIG_DIRS @@ -311,48 +311,6 @@ def user_cache_dir(appname=None, appauthor=None, version=None, opinion=True): return path -def user_state_dir(appname=None, appauthor=None, version=None, roaming=False): - r"""Return full path to the user-specific state dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be ".". - Only applied when appname is present. - "roaming" (boolean, default False) can be set True to use the Windows - roaming appdata directory. That means that for users on a Windows - network setup for roaming profiles, this user data will be - sync'd on login. See - - for a discussion of issues. - - Typical user state directories are: - Mac OS X: same as user_data_dir - Unix: ~/.local/state/ # or in $XDG_STATE_HOME, if defined - Win *: same as user_data_dir - - For Unix, we follow this Debian proposal - to extend the XDG spec and support $XDG_STATE_HOME. - - That means, by default "~/.local/state/". - """ - if system in ["win32", "darwin"]: - path = user_data_dir(appname, appauthor, None, roaming) - else: - path = os.getenv('XDG_STATE_HOME', os.path.expanduser("~/.local/state")) - if appname: - path = os.path.join(path, appname) - if appname and version: - path = os.path.join(path, version) - return path - - def user_log_dir(appname=None, appauthor=None, version=None, opinion=True): r"""Return full path to the user-specific log dir for this application. @@ -371,7 +329,7 @@ def user_log_dir(appname=None, appauthor=None, version=None, opinion=True): "Logs" to the base app data dir for Windows, and "log" to the base cache dir for Unix. See discussion below. - Typical user log directories are: + Typical user cache directories are: Mac OS X: ~/Library/Logs/ Unix: ~/.cache//log # or under $XDG_CACHE_HOME if defined Win XP: C:\Documents and Settings\\Local Settings\Application Data\\\Logs @@ -406,8 +364,8 @@ def user_log_dir(appname=None, appauthor=None, version=None, opinion=True): class AppDirs(object): """Convenience wrapper for getting application dirs.""" - def __init__(self, appname=None, appauthor=None, version=None, - roaming=False, multipath=False): + def __init__(self, appname, appauthor=None, version=None, roaming=False, + multipath=False): self.appname = appname self.appauthor = appauthor self.version = version @@ -439,11 +397,6 @@ class AppDirs(object): return user_cache_dir(self.appname, self.appauthor, version=self.version) - @property - def user_state_dir(self): - return user_state_dir(self.appname, self.appauthor, - version=self.version) - @property def user_log_dir(self): return user_log_dir(self.appname, self.appauthor, @@ -457,10 +410,7 @@ def _get_win_folder_from_registry(csidl_name): registry for this guarantees us the correct answer for all CSIDL_* names. """ - if PY3: - import winreg as _winreg - else: - import _winreg + import _winreg shell_folder_name = { "CSIDL_APPDATA": "AppData", @@ -550,7 +500,7 @@ def _get_win_folder_with_jna(csidl_name): if has_high_char: buf = array.zeros('c', buf_size) kernel = win32.Kernel32.INSTANCE - if kernel.GetShortPathName(dir, buf, buf_size): + if kernal.GetShortPathName(dir, buf, buf_size): dir = jna.Native.toString(buf.tostring()).rstrip("\0") return dir @@ -577,15 +527,9 @@ if __name__ == "__main__": appname = "MyApp" appauthor = "MyCompany" - props = ("user_data_dir", - "user_config_dir", - "user_cache_dir", - "user_state_dir", - "user_log_dir", - "site_data_dir", - "site_config_dir") - - print("-- app dirs %s --" % __version__) + props = ("user_data_dir", "site_data_dir", + "user_config_dir", "site_config_dir", + "user_cache_dir", "user_log_dir") print("-- app dirs (with optional 'version')") dirs = AppDirs(appname, appauthor, version="1.0") diff --git a/thesisenv/lib/python3.6/site-packages/pkg_resources/_vendor/pyparsing.py b/thesisenv/lib/python3.6/site-packages/pkg_resources/_vendor/pyparsing.py index e8aefc8..a212243 100644 --- a/thesisenv/lib/python3.6/site-packages/pkg_resources/_vendor/pyparsing.py +++ b/thesisenv/lib/python3.6/site-packages/pkg_resources/_vendor/pyparsing.py @@ -60,8 +60,8 @@ The pyparsing module handles some of the problems that are typically vexing when - embedded comments """ -__version__ = "2.2.0" -__versionTime__ = "06 Mar 2017 02:06 UTC" +__version__ = "2.1.10" +__versionTime__ = "07 Oct 2016 01:31 UTC" __author__ = "Paul McGuire " import string @@ -144,7 +144,7 @@ else: except UnicodeEncodeError: # Else encode it ret = unicode(obj).encode(sys.getdefaultencoding(), 'xmlcharrefreplace') - xmlcharref = Regex(r'&#\d+;') + xmlcharref = Regex('&#\d+;') xmlcharref.setParseAction(lambda t: '\\u' + hex(int(t[0][2:-1]))[2:]) return xmlcharref.transformString(ret) @@ -809,7 +809,7 @@ class ParseResults(object): return None def getName(self): - r""" + """ Returns the results name for this token expression. Useful when several different expressions might match at a particular location. @@ -1226,7 +1226,7 @@ class ParserElement(object): def setParseAction( self, *fns, **kwargs ): """ - Define one or more actions to perform when successfully matching parse element definition. + Define action to perform when successfully matching parse element definition. Parse action fn is a callable method with 0-3 arguments, called as C{fn(s,loc,toks)}, C{fn(loc,toks)}, C{fn(toks)}, or just C{fn()}, where: - s = the original string being parsed (see note below) @@ -1264,7 +1264,7 @@ class ParserElement(object): def addParseAction( self, *fns, **kwargs ): """ - Add one or more parse actions to expression's list of parse actions. See L{I{setParseAction}}. + Add parse action to expression's list of parse actions. See L{I{setParseAction}}. See examples in L{I{copy}}. """ @@ -1443,14 +1443,10 @@ class ParserElement(object): def clear(self): cache.clear() - - def cache_len(self): - return len(cache) self.get = types.MethodType(get, self) self.set = types.MethodType(set, self) self.clear = types.MethodType(clear, self) - self.__len__ = types.MethodType(cache_len, self) if _OrderedDict is not None: class _FifoCache(object): @@ -1464,22 +1460,15 @@ class ParserElement(object): def set(self, key, value): cache[key] = value - while len(cache) > size: - try: - cache.popitem(False) - except KeyError: - pass + if len(cache) > size: + cache.popitem(False) def clear(self): cache.clear() - def cache_len(self): - return len(cache) - self.get = types.MethodType(get, self) self.set = types.MethodType(set, self) self.clear = types.MethodType(clear, self) - self.__len__ = types.MethodType(cache_len, self) else: class _FifoCache(object): @@ -1494,7 +1483,7 @@ class ParserElement(object): def set(self, key, value): cache[key] = value - while len(key_fifo) > size: + if len(cache) > size: cache.pop(key_fifo.popleft(), None) key_fifo.append(key) @@ -1502,13 +1491,9 @@ class ParserElement(object): cache.clear() key_fifo.clear() - def cache_len(self): - return len(cache) - self.get = types.MethodType(get, self) self.set = types.MethodType(set, self) self.clear = types.MethodType(clear, self) - self.__len__ = types.MethodType(cache_len, self) # argument cache for optimizing repeated calls when backtracking through recursive expressions packrat_cache = {} # this is set later by enabledPackrat(); this is here so that resetCache() doesn't fail @@ -1758,12 +1743,8 @@ class ParserElement(object): cap_word = Word(alphas.upper(), alphas.lower()) print(cap_word.searchString("More than Iron, more than Lead, more than Gold I need Electricity")) - - # the sum() builtin can be used to merge results into a single ParseResults object - print(sum(cap_word.searchString("More than Iron, more than Lead, more than Gold I need Electricity"))) prints:: - [['More'], ['Iron'], ['Lead'], ['Gold'], ['I'], ['Electricity']] - ['More', 'Iron', 'Lead', 'Gold', 'I', 'Electricity'] + ['More', 'Iron', 'Lead', 'Gold', 'I'] """ try: return ParseResults([ t for t,s,e in self.scanString( instring, maxMatches ) ]) @@ -1838,7 +1819,7 @@ class ParserElement(object): warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), SyntaxWarning, stacklevel=2) return None - return self + And._ErrorStop() + other + return And( [ self, And._ErrorStop(), other ] ) def __rsub__(self, other ): """ @@ -2741,7 +2722,7 @@ class Word(Token): class Regex(Token): - r""" + """ Token for matching strings that match a given regular expression. Defined with string specifying the regular expression in a form recognized by the inbuilt Python re module. If the given regex contains named groups (defined using C{(?P...)}), these will be preserved as @@ -2930,7 +2911,7 @@ class QuotedString(Token): # replace escaped characters if self.escChar: - ret = re.sub(self.escCharReplacePattern, r"\g<1>", ret) + ret = re.sub(self.escCharReplacePattern,"\g<1>",ret) # replace escaped quotes if self.escQuote: @@ -5039,9 +5020,7 @@ def infixNotation( baseExpr, opList, lpar=Suppress('('), rpar=Suppress(')') ): constants C{opAssoc.RIGHT} and C{opAssoc.LEFT}. - parseAction is the parse action to be associated with expressions matching this operator expression (the - parse action tuple member may be omitted); if the parse action - is passed a tuple or list of functions, this is equivalent to - calling C{setParseAction(*fn)} (L{ParserElement.setParseAction}) + parse action tuple member may be omitted) - lpar - expression for matching left-parentheses (default=C{Suppress('(')}) - rpar - expression for matching right-parentheses (default=C{Suppress(')')}) @@ -5114,10 +5093,7 @@ def infixNotation( baseExpr, opList, lpar=Suppress('('), rpar=Suppress(')') ): else: raise ValueError("operator must indicate right or left associativity") if pa: - if isinstance(pa, (tuple, list)): - matchExpr.setParseAction(*pa) - else: - matchExpr.setParseAction(pa) + matchExpr.setParseAction( pa ) thisExpr <<= ( matchExpr.setName(termName) | lastExpr ) lastExpr = thisExpr ret <<= lastExpr diff --git a/thesisenv/lib/python3.6/site-packages/pkg_resources/extern/__init__.py b/thesisenv/lib/python3.6/site-packages/pkg_resources/extern/__init__.py index c1eb9e9..b4156fe 100644 --- a/thesisenv/lib/python3.6/site-packages/pkg_resources/extern/__init__.py +++ b/thesisenv/lib/python3.6/site-packages/pkg_resources/extern/__init__.py @@ -48,7 +48,7 @@ class VendorImporter: # on later Python versions to cause relative imports # in the vendor package to resolve the same modules # as those going through this importer. - if prefix and sys.version_info > (3, 3): + if sys.version_info > (3, 3): del sys.modules[extant] return mod except ImportError: diff --git a/thesisenv/lib/python3.6/site-packages/pkg_resources/py31compat.py b/thesisenv/lib/python3.6/site-packages/pkg_resources/py31compat.py index a381c42..331a51b 100644 --- a/thesisenv/lib/python3.6/site-packages/pkg_resources/py31compat.py +++ b/thesisenv/lib/python3.6/site-packages/pkg_resources/py31compat.py @@ -2,8 +2,6 @@ import os import errno import sys -from .extern import six - def _makedirs_31(path, exist_ok=False): try: @@ -17,7 +15,8 @@ def _makedirs_31(path, exist_ok=False): # and exists_ok considerations are disentangled. # See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663 needs_makedirs = ( - six.PY2 or + sys.version_info < (3, 2, 5) or + (3, 3) <= sys.version_info < (3, 3, 6) or (3, 4) <= sys.version_info < (3, 4, 1) ) makedirs = _makedirs_31 if needs_makedirs else os.makedirs diff --git a/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/DESCRIPTION.rst b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/DESCRIPTION.rst new file mode 100644 index 0000000..ba3a46b --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/DESCRIPTION.rst @@ -0,0 +1,36 @@ +.. image:: https://img.shields.io/pypi/v/setuptools.svg + :target: https://pypi.org/project/setuptools + +.. image:: https://readthedocs.org/projects/setuptools/badge/?version=latest + :target: https://setuptools.readthedocs.io + +.. image:: https://img.shields.io/travis/pypa/setuptools/master.svg?label=Linux%20build%20%40%20Travis%20CI + :target: https://travis-ci.org/pypa/setuptools + +.. image:: https://img.shields.io/appveyor/ci/jaraco/setuptools/master.svg?label=Windows%20build%20%40%20Appveyor + :target: https://ci.appveyor.com/project/jaraco/setuptools/branch/master + +.. image:: https://img.shields.io/pypi/pyversions/setuptools.svg + +See the `Installation Instructions +`_ in the Python Packaging +User's Guide for instructions on installing, upgrading, and uninstalling +Setuptools. + +The project is `maintained at GitHub `_. + +Questions and comments should be directed to the `distutils-sig +mailing list `_. +Bug reports and especially tested patches may be +submitted directly to the `bug tracker +`_. + + +Code of Conduct +--------------- + +Everyone interacting in the setuptools project's codebases, issue trackers, +chat rooms, and mailing lists is expected to follow the +`PyPA Code of Conduct `_. + + diff --git a/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/INSTALLER b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/LICENSE.txt b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/LICENSE.txt new file mode 100644 index 0000000..6e0693b --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (C) 2016 Jason R Coombs + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/METADATA b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/METADATA new file mode 100644 index 0000000..fdeaeb0 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/METADATA @@ -0,0 +1,71 @@ +Metadata-Version: 2.0 +Name: setuptools +Version: 39.0.1 +Summary: Easily download, build, install, upgrade, and uninstall Python packages +Home-page: https://github.com/pypa/setuptools +Author: Python Packaging Authority +Author-email: distutils-sig@python.org +License: UNKNOWN +Project-URL: Documentation, https://setuptools.readthedocs.io/ +Keywords: CPAN PyPI distutils eggs package management +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: System :: Archiving :: Packaging +Classifier: Topic :: System :: Systems Administration +Classifier: Topic :: Utilities +Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.* +Description-Content-Type: text/x-rst; charset=UTF-8 +Provides-Extra: certs +Provides-Extra: ssl +Provides-Extra: certs +Requires-Dist: certifi (==2016.9.26); extra == 'certs' +Provides-Extra: ssl +Requires-Dist: wincertstore (==0.2); sys_platform=='win32' and extra == 'ssl' + +.. image:: https://img.shields.io/pypi/v/setuptools.svg + :target: https://pypi.org/project/setuptools + +.. image:: https://readthedocs.org/projects/setuptools/badge/?version=latest + :target: https://setuptools.readthedocs.io + +.. image:: https://img.shields.io/travis/pypa/setuptools/master.svg?label=Linux%20build%20%40%20Travis%20CI + :target: https://travis-ci.org/pypa/setuptools + +.. image:: https://img.shields.io/appveyor/ci/jaraco/setuptools/master.svg?label=Windows%20build%20%40%20Appveyor + :target: https://ci.appveyor.com/project/jaraco/setuptools/branch/master + +.. image:: https://img.shields.io/pypi/pyversions/setuptools.svg + +See the `Installation Instructions +`_ in the Python Packaging +User's Guide for instructions on installing, upgrading, and uninstalling +Setuptools. + +The project is `maintained at GitHub `_. + +Questions and comments should be directed to the `distutils-sig +mailing list `_. +Bug reports and especially tested patches may be +submitted directly to the `bug tracker +`_. + + +Code of Conduct +--------------- + +Everyone interacting in the setuptools project's codebases, issue trackers, +chat rooms, and mailing lists is expected to follow the +`PyPA Code of Conduct `_. + + diff --git a/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/RECORD b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/RECORD new file mode 100644 index 0000000..45f22ca --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/RECORD @@ -0,0 +1,188 @@ +easy_install.py,sha256=MDC9vt5AxDsXX5qcKlBz2TnW6Tpuv_AobnfhCJ9X3PM,126 +pkg_resources/__init__.py,sha256=YQ4_WQnPztMsUy1yuvp7ZRBPK9IhOyhgosLpvkFso1I,103551 +pkg_resources/py31compat.py,sha256=-ysVqoxLetAnL94uM0kHkomKQTC1JZLN2ZUjqUhMeKE,600 +pkg_resources/_vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pkg_resources/_vendor/appdirs.py,sha256=tgGaL0m4Jo2VeuGfoOOifLv7a7oUEJu2n1vRkqoPw-0,22374 +pkg_resources/_vendor/pyparsing.py,sha256=PifeLY3-WhIcBVzLtv0U4T_pwDtPruBhBCkg5vLqa28,229867 +pkg_resources/_vendor/six.py,sha256=A6hdJZVjI3t_geebZ9BzUvwRrIXo0lfwzQlM2LcKyas,30098 +pkg_resources/_vendor/packaging/__about__.py,sha256=zkcCPTN_6TcLW0Nrlg0176-R1QQ_WVPTm8sz1R4-HjM,720 +pkg_resources/_vendor/packaging/__init__.py,sha256=_vNac5TrzwsrzbOFIbF-5cHqc_Y2aPT2D7zrIR06BOo,513 +pkg_resources/_vendor/packaging/_compat.py,sha256=Vi_A0rAQeHbU-a9X0tt1yQm9RqkgQbDSxzRw8WlU9kA,860 +pkg_resources/_vendor/packaging/_structures.py,sha256=RImECJ4c_wTlaTYYwZYLHEiebDMaAJmK1oPARhw1T5o,1416 +pkg_resources/_vendor/packaging/markers.py,sha256=uEcBBtGvzqltgnArqb9c4RrcInXezDLos14zbBHhWJo,8248 +pkg_resources/_vendor/packaging/requirements.py,sha256=SikL2UynbsT0qtY9ltqngndha_sfo0w6XGFhAhoSoaQ,4355 +pkg_resources/_vendor/packaging/specifiers.py,sha256=SAMRerzO3fK2IkFZCaZkuwZaL_EGqHNOz4pni4vhnN0,28025 +pkg_resources/_vendor/packaging/utils.py,sha256=3m6WvPm6NNxE8rkTGmn0r75B_GZSGg7ikafxHsBN1WA,421 +pkg_resources/_vendor/packaging/version.py,sha256=OwGnxYfr2ghNzYx59qWIBkrK3SnB6n-Zfd1XaLpnnM0,11556 +pkg_resources/extern/__init__.py,sha256=JUtlHHvlxHSNuB4pWqNjcx7n6kG-fwXg7qmJ2zNJlIY,2487 +setuptools/__init__.py,sha256=WWIdCbFJnZ9fZoaWDN_x1vDA_Rkm-Sc15iKvPtIYKFs,5700 +setuptools/archive_util.py,sha256=kw8Ib_lKjCcnPKNbS7h8HztRVK0d5RacU3r_KRdVnmM,6592 +setuptools/build_meta.py,sha256=FllaKTr1vSJyiUeRjVJEZmeEaRzhYueNlimtcwaJba8,5671 +setuptools/cli-32.exe,sha256=dfEuovMNnA2HLa3jRfMPVi5tk4R7alCbpTvuxtCyw0Y,65536 +setuptools/cli-64.exe,sha256=KLABu5pyrnokJCv6skjXZ6GsXeyYHGcqOUT3oHI3Xpo,74752 +setuptools/cli.exe,sha256=dfEuovMNnA2HLa3jRfMPVi5tk4R7alCbpTvuxtCyw0Y,65536 +setuptools/config.py,sha256=tVYBM3w1U_uBRRTOZydflxyZ_IrTJT5odlZz3cbuhSw,16381 +setuptools/dep_util.py,sha256=fgixvC1R7sH3r13ktyf7N0FALoqEXL1cBarmNpSEoWg,935 +setuptools/depends.py,sha256=hC8QIDcM3VDpRXvRVA6OfL9AaQfxvhxHcN_w6sAyNq8,5837 +setuptools/dist.py,sha256=_wCSFiGqwyaOUTj0tBjqZF2bqW9aEVu4W1D4gmsveno,42514 +setuptools/extension.py,sha256=uc6nHI-MxwmNCNPbUiBnybSyqhpJqjbhvOQ-emdvt_E,1729 +setuptools/glibc.py,sha256=X64VvGPL2AbURKwYRsWJOXXGAYOiF_v2qixeTkAULuU,3146 +setuptools/glob.py,sha256=Y-fpv8wdHZzv9DPCaGACpMSBWJ6amq_1e0R_i8_el4w,5207 +setuptools/gui-32.exe,sha256=XBr0bHMA6Hpz2s9s9Bzjl-PwXfa9nH4ie0rFn4V2kWA,65536 +setuptools/gui-64.exe,sha256=aYKMhX1IJLn4ULHgWX0sE0yREUt6B3TEHf_jOw6yNyE,75264 +setuptools/gui.exe,sha256=XBr0bHMA6Hpz2s9s9Bzjl-PwXfa9nH4ie0rFn4V2kWA,65536 +setuptools/launch.py,sha256=sd7ejwhBocCDx_wG9rIs0OaZ8HtmmFU8ZC6IR_S0Lvg,787 +setuptools/lib2to3_ex.py,sha256=t5e12hbR2pi9V4ezWDTB4JM-AISUnGOkmcnYHek3xjg,2013 +setuptools/monkey.py,sha256=zZGTH7p0xeXQKLmEwJTPIE4m5m7fJeHoAsxyv5M8e_E,5789 +setuptools/msvc.py,sha256=8EiV9ypb3EQJQssPcH1HZbdNsbRvqsFnJ7wPFEGwFIo,40877 +setuptools/namespaces.py,sha256=F0Nrbv8KCT2OrO7rwa03om4N4GZKAlnce-rr-cgDQa8,3199 +setuptools/package_index.py,sha256=NEsrNXnt_9gGP-nCCYzV-0gk15lXAGO7RghRxpfqLqE,40142 +setuptools/pep425tags.py,sha256=NuGMx1gGif7x6iYemh0LfgBr_FZF5GFORIbgmMdU8J4,10882 +setuptools/py27compat.py,sha256=3mwxRMDk5Q5O1rSXOERbQDXhFqwDJhhUitfMW_qpUCo,536 +setuptools/py31compat.py,sha256=XuU1HCsGE_3zGvBRIhYw2iB-IhCFK4-Pxw_jMiqdNVk,1192 +setuptools/py33compat.py,sha256=NKS84nl4LjLIoad6OQfgmygZn4mMvrok_b1N1tzebew,1182 +setuptools/py36compat.py,sha256=VUDWxmu5rt4QHlGTRtAFu6W5jvfL6WBjeDAzeoBy0OM,2891 +setuptools/sandbox.py,sha256=9UbwfEL5QY436oMI1LtFWohhoZ-UzwHvGyZjUH_qhkw,14276 +setuptools/script (dev).tmpl,sha256=f7MR17dTkzaqkCMSVseyOCMVrPVSMdmTQsaB8cZzfuI,201 +setuptools/script.tmpl,sha256=WGTt5piezO27c-Dbx6l5Q4T3Ff20A5z7872hv3aAhYY,138 +setuptools/site-patch.py,sha256=BVt6yIrDMXJoflA5J6DJIcsJUfW_XEeVhOzelTTFDP4,2307 +setuptools/ssl_support.py,sha256=YBDJsCZjSp62CWjxmSkke9kn9rhHHj25Cus6zhJRW3c,8492 +setuptools/unicode_utils.py,sha256=NOiZ_5hD72A6w-4wVj8awHFM3n51Kmw1Ic_vx15XFqw,996 +setuptools/version.py,sha256=og_cuZQb0QI6ukKZFfZWPlr1HgJBPPn2vO2m_bI9ZTE,144 +setuptools/wheel.py,sha256=yF9usxMvpwnymV-oOo5mfDiv3E8jrKkbDEItT7_kjBs,7230 +setuptools/windows_support.py,sha256=5GrfqSP2-dLGJoZTq2g6dCKkyQxxa2n5IQiXlJCoYEE,714 +setuptools/_vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/pyparsing.py,sha256=PifeLY3-WhIcBVzLtv0U4T_pwDtPruBhBCkg5vLqa28,229867 +setuptools/_vendor/six.py,sha256=A6hdJZVjI3t_geebZ9BzUvwRrIXo0lfwzQlM2LcKyas,30098 +setuptools/_vendor/packaging/__about__.py,sha256=zkcCPTN_6TcLW0Nrlg0176-R1QQ_WVPTm8sz1R4-HjM,720 +setuptools/_vendor/packaging/__init__.py,sha256=_vNac5TrzwsrzbOFIbF-5cHqc_Y2aPT2D7zrIR06BOo,513 +setuptools/_vendor/packaging/_compat.py,sha256=Vi_A0rAQeHbU-a9X0tt1yQm9RqkgQbDSxzRw8WlU9kA,860 +setuptools/_vendor/packaging/_structures.py,sha256=RImECJ4c_wTlaTYYwZYLHEiebDMaAJmK1oPARhw1T5o,1416 +setuptools/_vendor/packaging/markers.py,sha256=Gvpk9EY20yKaMTiKgQZ8yFEEpodqVgVYtfekoic1Yts,8239 +setuptools/_vendor/packaging/requirements.py,sha256=t44M2HVWtr8phIz2OhnILzuGT3rTATaovctV1dpnVIg,4343 +setuptools/_vendor/packaging/specifiers.py,sha256=SAMRerzO3fK2IkFZCaZkuwZaL_EGqHNOz4pni4vhnN0,28025 +setuptools/_vendor/packaging/utils.py,sha256=3m6WvPm6NNxE8rkTGmn0r75B_GZSGg7ikafxHsBN1WA,421 +setuptools/_vendor/packaging/version.py,sha256=OwGnxYfr2ghNzYx59qWIBkrK3SnB6n-Zfd1XaLpnnM0,11556 +setuptools/command/__init__.py,sha256=NWzJ0A1BEengZpVeqUyWLNm2bk4P3F4iL5QUErHy7kA,594 +setuptools/command/alias.py,sha256=KjpE0sz_SDIHv3fpZcIQK-sCkJz-SrC6Gmug6b9Nkc8,2426 +setuptools/command/bdist_egg.py,sha256=RQ9h8BmSVpXKJQST3i_b_sm093Z-aCXbfMBEM2IrI-Q,18185 +setuptools/command/bdist_rpm.py,sha256=B7l0TnzCGb-0nLlm6rS00jWLkojASwVmdhW2w5Qz_Ak,1508 +setuptools/command/bdist_wininst.py,sha256=_6dz3lpB1tY200LxKPLM7qgwTCceOMgaWFF-jW2-pm0,637 +setuptools/command/build_clib.py,sha256=bQ9aBr-5ZSO-9fGsGsDLz0mnnFteHUZnftVLkhvHDq0,4484 +setuptools/command/build_ext.py,sha256=PCRAZ2xYnqyEof7EFNtpKYl0sZzT0qdKUNTH3sUdPqk,13173 +setuptools/command/build_py.py,sha256=yWyYaaS9F3o9JbIczn064A5g1C5_UiKRDxGaTqYbtLE,9596 +setuptools/command/develop.py,sha256=wKbOw2_qUvcDti2lZmtxbDmYb54yAAibExzXIvToz-A,8046 +setuptools/command/dist_info.py,sha256=5t6kOfrdgALT-P3ogss6PF9k-Leyesueycuk3dUyZnI,960 +setuptools/command/easy_install.py,sha256=I0UOqFrS9U7fmh0uW57IR37keMKSeqXp6z61Oz1nEoA,87054 +setuptools/command/egg_info.py,sha256=3b5Y3t_bl_zZRCkmlGi3igvRze9oOaxd-dVf2w1FBOc,24800 +setuptools/command/install.py,sha256=a0EZpL_A866KEdhicTGbuyD_TYl1sykfzdrri-zazT4,4683 +setuptools/command/install_egg_info.py,sha256=bMgeIeRiXzQ4DAGPV1328kcjwQjHjOWU4FngAWLV78Q,2203 +setuptools/command/install_lib.py,sha256=11mxf0Ch12NsuYwS8PHwXBRvyh671QAM4cTRh7epzG0,3840 +setuptools/command/install_scripts.py,sha256=UD0rEZ6861mTYhIdzcsqKnUl8PozocXWl9VBQ1VTWnc,2439 +setuptools/command/launcher manifest.xml,sha256=xlLbjWrB01tKC0-hlVkOKkiSPbzMml2eOPtJ_ucCnbE,628 +setuptools/command/py36compat.py,sha256=SzjZcOxF7zdFUT47Zv2n7AM3H8koDys_0OpS-n9gIfc,4986 +setuptools/command/register.py,sha256=bHlMm1qmBbSdahTOT8w6UhA-EgeQIz7p6cD-qOauaiI,270 +setuptools/command/rotate.py,sha256=co5C1EkI7P0GGT6Tqz-T2SIj2LBJTZXYELpmao6d4KQ,2164 +setuptools/command/saveopts.py,sha256=za7QCBcQimKKriWcoCcbhxPjUz30gSB74zuTL47xpP4,658 +setuptools/command/sdist.py,sha256=obDTe2BmWt2PlnFPZZh7e0LWvemEsbCCO9MzhrTZjm8,6711 +setuptools/command/setopt.py,sha256=NTWDyx-gjDF-txf4dO577s7LOzHVoKR0Mq33rFxaRr8,5085 +setuptools/command/test.py,sha256=MeBAcXUePGjPKqjz4zvTrHatLvNsjlPFcagt3XnFYdk,9214 +setuptools/command/upload.py,sha256=i1gfItZ3nQOn5FKXb8tLC2Kd7eKC8lWO4bdE6NqGpE4,1172 +setuptools/command/upload_docs.py,sha256=oXiGplM_cUKLwE4CWWw98RzCufAu8tBhMC97GegFcms,7311 +setuptools/extern/__init__.py,sha256=2eKMsBMwsZqolIcYBtLZU3t96s6xSTP4PTaNfM5P-I0,2499 +setuptools-39.0.1.dist-info/DESCRIPTION.rst,sha256=It3a3GRjT5701mqhrpMcLyW_YS2Dokv-X8zWoTaMRe0,1422 +setuptools-39.0.1.dist-info/LICENSE.txt,sha256=wyo6w5WvYyHv0ovnPQagDw22q4h9HCHU_sRhKNIFbVo,1078 +setuptools-39.0.1.dist-info/METADATA,sha256=bUSvsq3nbwr4FDQmI4Cu1Sd17lRO4y4MFANuLmZ70gs,2903 +setuptools-39.0.1.dist-info/RECORD,, +setuptools-39.0.1.dist-info/WHEEL,sha256=kdsN-5OJAZIiHN-iO4Rhl82KyS0bDWf4uBwMbkNafr8,110 +setuptools-39.0.1.dist-info/dependency_links.txt,sha256=HlkCFkoK5TbZ5EMLbLKYhLcY_E31kBWD8TqW2EgmatQ,239 +setuptools-39.0.1.dist-info/entry_points.txt,sha256=jBqCYDlVjl__sjYFGXo1JQGIMAYFJE-prYWUtnMZEew,2990 +setuptools-39.0.1.dist-info/metadata.json,sha256=kJuHY3HestbJAAqqkLVW75x2Uxgxd2qaz4sQAfFCtXM,4969 +setuptools-39.0.1.dist-info/top_level.txt,sha256=2HUXVVwA4Pff1xgTFr3GsTXXKaPaO6vlG6oNJ_4u4Tg,38 +setuptools-39.0.1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 +../../../bin/easy_install,sha256=1HY9dEozZxF27JG8uBhjj5mzBtKNnJcCvl9bsqfUFVQ,262 +../../../bin/easy_install-3.6,sha256=1HY9dEozZxF27JG8uBhjj5mzBtKNnJcCvl9bsqfUFVQ,262 +setuptools-39.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +__pycache__/easy_install.cpython-36.pyc,, +setuptools/_vendor/packaging/__pycache__/_structures.cpython-36.pyc,, +setuptools/_vendor/packaging/__pycache__/version.cpython-36.pyc,, +setuptools/_vendor/packaging/__pycache__/requirements.cpython-36.pyc,, +setuptools/_vendor/packaging/__pycache__/markers.cpython-36.pyc,, +setuptools/_vendor/packaging/__pycache__/_compat.cpython-36.pyc,, +setuptools/_vendor/packaging/__pycache__/specifiers.cpython-36.pyc,, +setuptools/_vendor/packaging/__pycache__/__about__.cpython-36.pyc,, +setuptools/_vendor/packaging/__pycache__/utils.cpython-36.pyc,, +setuptools/_vendor/packaging/__pycache__/__init__.cpython-36.pyc,, +setuptools/_vendor/__pycache__/six.cpython-36.pyc,, +setuptools/_vendor/__pycache__/__init__.cpython-36.pyc,, +setuptools/_vendor/__pycache__/pyparsing.cpython-36.pyc,, +setuptools/__pycache__/package_index.cpython-36.pyc,, +setuptools/__pycache__/py31compat.cpython-36.pyc,, +setuptools/__pycache__/sandbox.cpython-36.pyc,, +setuptools/__pycache__/windows_support.cpython-36.pyc,, +setuptools/__pycache__/wheel.cpython-36.pyc,, +setuptools/__pycache__/version.cpython-36.pyc,, +setuptools/__pycache__/site-patch.cpython-36.pyc,, +setuptools/__pycache__/launch.cpython-36.pyc,, +setuptools/__pycache__/unicode_utils.cpython-36.pyc,, +setuptools/__pycache__/config.cpython-36.pyc,, +setuptools/__pycache__/glibc.cpython-36.pyc,, +setuptools/__pycache__/ssl_support.cpython-36.pyc,, +setuptools/__pycache__/depends.cpython-36.pyc,, +setuptools/__pycache__/glob.cpython-36.pyc,, +setuptools/__pycache__/msvc.cpython-36.pyc,, +setuptools/__pycache__/py27compat.cpython-36.pyc,, +setuptools/__pycache__/pep425tags.cpython-36.pyc,, +setuptools/__pycache__/py33compat.cpython-36.pyc,, +setuptools/__pycache__/lib2to3_ex.cpython-36.pyc,, +setuptools/__pycache__/monkey.cpython-36.pyc,, +setuptools/__pycache__/py36compat.cpython-36.pyc,, +setuptools/__pycache__/dist.cpython-36.pyc,, +setuptools/__pycache__/build_meta.cpython-36.pyc,, +setuptools/__pycache__/namespaces.cpython-36.pyc,, +setuptools/__pycache__/dep_util.cpython-36.pyc,, +setuptools/__pycache__/__init__.cpython-36.pyc,, +setuptools/__pycache__/extension.cpython-36.pyc,, +setuptools/__pycache__/archive_util.cpython-36.pyc,, +setuptools/command/__pycache__/alias.cpython-36.pyc,, +setuptools/command/__pycache__/register.cpython-36.pyc,, +setuptools/command/__pycache__/install_lib.cpython-36.pyc,, +setuptools/command/__pycache__/setopt.cpython-36.pyc,, +setuptools/command/__pycache__/bdist_egg.cpython-36.pyc,, +setuptools/command/__pycache__/bdist_rpm.cpython-36.pyc,, +setuptools/command/__pycache__/dist_info.cpython-36.pyc,, +setuptools/command/__pycache__/develop.cpython-36.pyc,, +setuptools/command/__pycache__/build_py.cpython-36.pyc,, +setuptools/command/__pycache__/build_clib.cpython-36.pyc,, +setuptools/command/__pycache__/upload.cpython-36.pyc,, +setuptools/command/__pycache__/sdist.cpython-36.pyc,, +setuptools/command/__pycache__/install.cpython-36.pyc,, +setuptools/command/__pycache__/egg_info.cpython-36.pyc,, +setuptools/command/__pycache__/py36compat.cpython-36.pyc,, +setuptools/command/__pycache__/easy_install.cpython-36.pyc,, +setuptools/command/__pycache__/build_ext.cpython-36.pyc,, +setuptools/command/__pycache__/rotate.cpython-36.pyc,, +setuptools/command/__pycache__/upload_docs.cpython-36.pyc,, +setuptools/command/__pycache__/saveopts.cpython-36.pyc,, +setuptools/command/__pycache__/__init__.cpython-36.pyc,, +setuptools/command/__pycache__/test.cpython-36.pyc,, +setuptools/command/__pycache__/bdist_wininst.cpython-36.pyc,, +setuptools/command/__pycache__/install_scripts.cpython-36.pyc,, +setuptools/command/__pycache__/install_egg_info.cpython-36.pyc,, +setuptools/extern/__pycache__/__init__.cpython-36.pyc,, +pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-36.pyc,, +pkg_resources/_vendor/packaging/__pycache__/version.cpython-36.pyc,, +pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-36.pyc,, +pkg_resources/_vendor/packaging/__pycache__/markers.cpython-36.pyc,, +pkg_resources/_vendor/packaging/__pycache__/_compat.cpython-36.pyc,, +pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-36.pyc,, +pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-36.pyc,, +pkg_resources/_vendor/packaging/__pycache__/utils.cpython-36.pyc,, +pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-36.pyc,, +pkg_resources/_vendor/__pycache__/appdirs.cpython-36.pyc,, +pkg_resources/_vendor/__pycache__/six.cpython-36.pyc,, +pkg_resources/_vendor/__pycache__/__init__.cpython-36.pyc,, +pkg_resources/_vendor/__pycache__/pyparsing.cpython-36.pyc,, +pkg_resources/__pycache__/py31compat.cpython-36.pyc,, +pkg_resources/__pycache__/__init__.cpython-36.pyc,, +pkg_resources/extern/__pycache__/__init__.cpython-36.pyc,, diff --git a/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/WHEEL b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/WHEEL new file mode 100644 index 0000000..7332a41 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.30.0) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/dependency_links.txt b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/dependency_links.txt new file mode 100644 index 0000000..e87d021 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/dependency_links.txt @@ -0,0 +1,2 @@ +https://files.pythonhosted.org/packages/source/c/certifi/certifi-2016.9.26.tar.gz#md5=baa81e951a29958563689d868ef1064d +https://files.pythonhosted.org/packages/source/w/wincertstore/wincertstore-0.2.zip#md5=ae728f2f007185648d0c7a8679b361e2 diff --git a/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/entry_points.txt b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/entry_points.txt new file mode 100644 index 0000000..4159fd0 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/entry_points.txt @@ -0,0 +1,65 @@ +[console_scripts] +easy_install = setuptools.command.easy_install:main +easy_install-3.6 = setuptools.command.easy_install:main + +[distutils.commands] +alias = setuptools.command.alias:alias +bdist_egg = setuptools.command.bdist_egg:bdist_egg +bdist_rpm = setuptools.command.bdist_rpm:bdist_rpm +bdist_wininst = setuptools.command.bdist_wininst:bdist_wininst +build_clib = setuptools.command.build_clib:build_clib +build_ext = setuptools.command.build_ext:build_ext +build_py = setuptools.command.build_py:build_py +develop = setuptools.command.develop:develop +dist_info = setuptools.command.dist_info:dist_info +easy_install = setuptools.command.easy_install:easy_install +egg_info = setuptools.command.egg_info:egg_info +install = setuptools.command.install:install +install_egg_info = setuptools.command.install_egg_info:install_egg_info +install_lib = setuptools.command.install_lib:install_lib +install_scripts = setuptools.command.install_scripts:install_scripts +register = setuptools.command.register:register +rotate = setuptools.command.rotate:rotate +saveopts = setuptools.command.saveopts:saveopts +sdist = setuptools.command.sdist:sdist +setopt = setuptools.command.setopt:setopt +test = setuptools.command.test:test +upload = setuptools.command.upload:upload +upload_docs = setuptools.command.upload_docs:upload_docs + +[distutils.setup_keywords] +convert_2to3_doctests = setuptools.dist:assert_string_list +dependency_links = setuptools.dist:assert_string_list +eager_resources = setuptools.dist:assert_string_list +entry_points = setuptools.dist:check_entry_points +exclude_package_data = setuptools.dist:check_package_data +extras_require = setuptools.dist:check_extras +include_package_data = setuptools.dist:assert_bool +install_requires = setuptools.dist:check_requirements +namespace_packages = setuptools.dist:check_nsp +package_data = setuptools.dist:check_package_data +packages = setuptools.dist:check_packages +python_requires = setuptools.dist:check_specifier +setup_requires = setuptools.dist:check_requirements +test_loader = setuptools.dist:check_importable +test_runner = setuptools.dist:check_importable +test_suite = setuptools.dist:check_test_suite +tests_require = setuptools.dist:check_requirements +use_2to3 = setuptools.dist:assert_bool +use_2to3_exclude_fixers = setuptools.dist:assert_string_list +use_2to3_fixers = setuptools.dist:assert_string_list +zip_safe = setuptools.dist:assert_bool + +[egg_info.writers] +PKG-INFO = setuptools.command.egg_info:write_pkg_info +dependency_links.txt = setuptools.command.egg_info:overwrite_arg +depends.txt = setuptools.command.egg_info:warn_depends_obsolete +eager_resources.txt = setuptools.command.egg_info:overwrite_arg +entry_points.txt = setuptools.command.egg_info:write_entries +namespace_packages.txt = setuptools.command.egg_info:overwrite_arg +requires.txt = setuptools.command.egg_info:write_requirements +top_level.txt = setuptools.command.egg_info:write_toplevel_names + +[setuptools.installation] +eggsecutable = setuptools.command.easy_install:bootstrap + diff --git a/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/metadata.json b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/metadata.json new file mode 100644 index 0000000..e28ac23 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/metadata.json @@ -0,0 +1 @@ +{"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Archiving :: Packaging", "Topic :: System :: Systems Administration", "Topic :: Utilities"], "description_content_type": "text/x-rst; charset=UTF-8", "extensions": {"python.commands": {"wrap_console": {"easy_install": "setuptools.command.easy_install:main", "easy_install-3.6": "setuptools.command.easy_install:main"}}, "python.details": {"contacts": [{"email": "distutils-sig@python.org", "name": "Python Packaging Authority", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}, "project_urls": {"Home": "https://github.com/pypa/setuptools"}}, "python.exports": {"console_scripts": {"easy_install": "setuptools.command.easy_install:main", "easy_install-3.6": "setuptools.command.easy_install:main"}, "distutils.commands": {"alias": "setuptools.command.alias:alias", "bdist_egg": "setuptools.command.bdist_egg:bdist_egg", "bdist_rpm": "setuptools.command.bdist_rpm:bdist_rpm", "bdist_wininst": "setuptools.command.bdist_wininst:bdist_wininst", "build_clib": "setuptools.command.build_clib:build_clib", "build_ext": "setuptools.command.build_ext:build_ext", "build_py": "setuptools.command.build_py:build_py", "develop": "setuptools.command.develop:develop", "dist_info": "setuptools.command.dist_info:dist_info", "easy_install": "setuptools.command.easy_install:easy_install", "egg_info": "setuptools.command.egg_info:egg_info", "install": "setuptools.command.install:install", "install_egg_info": "setuptools.command.install_egg_info:install_egg_info", "install_lib": "setuptools.command.install_lib:install_lib", "install_scripts": "setuptools.command.install_scripts:install_scripts", "register": "setuptools.command.register:register", "rotate": "setuptools.command.rotate:rotate", "saveopts": "setuptools.command.saveopts:saveopts", "sdist": "setuptools.command.sdist:sdist", "setopt": "setuptools.command.setopt:setopt", "test": "setuptools.command.test:test", "upload": "setuptools.command.upload:upload", "upload_docs": "setuptools.command.upload_docs:upload_docs"}, "distutils.setup_keywords": {"convert_2to3_doctests": "setuptools.dist:assert_string_list", "dependency_links": "setuptools.dist:assert_string_list", "eager_resources": "setuptools.dist:assert_string_list", "entry_points": "setuptools.dist:check_entry_points", "exclude_package_data": "setuptools.dist:check_package_data", "extras_require": "setuptools.dist:check_extras", "include_package_data": "setuptools.dist:assert_bool", "install_requires": "setuptools.dist:check_requirements", "namespace_packages": "setuptools.dist:check_nsp", "package_data": "setuptools.dist:check_package_data", "packages": "setuptools.dist:check_packages", "python_requires": "setuptools.dist:check_specifier", "setup_requires": "setuptools.dist:check_requirements", "test_loader": "setuptools.dist:check_importable", "test_runner": "setuptools.dist:check_importable", "test_suite": "setuptools.dist:check_test_suite", "tests_require": "setuptools.dist:check_requirements", "use_2to3": "setuptools.dist:assert_bool", "use_2to3_exclude_fixers": "setuptools.dist:assert_string_list", "use_2to3_fixers": "setuptools.dist:assert_string_list", "zip_safe": "setuptools.dist:assert_bool"}, "egg_info.writers": {"PKG-INFO": "setuptools.command.egg_info:write_pkg_info", "dependency_links.txt": "setuptools.command.egg_info:overwrite_arg", "depends.txt": "setuptools.command.egg_info:warn_depends_obsolete", "eager_resources.txt": "setuptools.command.egg_info:overwrite_arg", "entry_points.txt": "setuptools.command.egg_info:write_entries", "namespace_packages.txt": "setuptools.command.egg_info:overwrite_arg", "requires.txt": "setuptools.command.egg_info:write_requirements", "top_level.txt": "setuptools.command.egg_info:write_toplevel_names"}, "setuptools.installation": {"eggsecutable": "setuptools.command.easy_install:bootstrap"}}}, "extras": ["certs", "ssl"], "generator": "bdist_wheel (0.30.0)", "keywords": ["CPAN", "PyPI", "distutils", "eggs", "package", "management"], "metadata_version": "2.0", "name": "setuptools", "project_url": "Documentation, https://setuptools.readthedocs.io/", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*", "run_requires": [{"extra": "certs", "requires": ["certifi (==2016.9.26)"]}, {"environment": "sys_platform=='win32'", "extra": "ssl", "requires": ["wincertstore (==0.2)"]}], "summary": "Easily download, build, install, upgrade, and uninstall Python packages", "version": "39.0.1"} \ No newline at end of file diff --git a/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/top_level.txt b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/top_level.txt new file mode 100644 index 0000000..4577c6a --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/top_level.txt @@ -0,0 +1,3 @@ +easy_install +pkg_resources +setuptools diff --git a/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/zip-safe b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/setuptools-39.0.1.dist-info/zip-safe @@ -0,0 +1 @@ + diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/__init__.py b/thesisenv/lib/python3.6/site-packages/setuptools/__init__.py index 54309b5..7da47fb 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/__init__.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/__init__.py @@ -1,14 +1,12 @@ """Extensions to the 'distutils' for large or complex distributions""" import os -import sys import functools import distutils.core import distutils.filelist from distutils.util import convert_path from fnmatch import fnmatchcase -from setuptools.extern.six import PY3 from setuptools.extern.six.moves import filter, map import setuptools.version @@ -17,17 +15,11 @@ from setuptools.dist import Distribution, Feature from setuptools.depends import Require from . import monkey -__metaclass__ = type - - __all__ = [ 'setup', 'Distribution', 'Feature', 'Command', 'Extension', 'Require', - 'find_packages' + 'find_packages', ] -if PY3: - __all__.append('find_namespace_packages') - __version__ = setuptools.version.__version__ bootstrap_install_from = None @@ -39,7 +31,7 @@ run_2to3_on_doctests = True lib2to3_fixer_packages = ['lib2to3.fixes'] -class PackageFinder: +class PackageFinder(object): """ Generate a list of all Python packages found within a directory """ @@ -117,9 +109,6 @@ class PEP420PackageFinder(PackageFinder): find_packages = PackageFinder.find -if PY3: - find_namespace_packages = PEP420PackageFinder.find - def _install_setup_requires(attrs): # Note: do not use `setuptools.Distribution` directly, as diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/_vendor/pyparsing.py b/thesisenv/lib/python3.6/site-packages/setuptools/_vendor/pyparsing.py index e8aefc8..a212243 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/_vendor/pyparsing.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/_vendor/pyparsing.py @@ -60,8 +60,8 @@ The pyparsing module handles some of the problems that are typically vexing when - embedded comments """ -__version__ = "2.2.0" -__versionTime__ = "06 Mar 2017 02:06 UTC" +__version__ = "2.1.10" +__versionTime__ = "07 Oct 2016 01:31 UTC" __author__ = "Paul McGuire " import string @@ -144,7 +144,7 @@ else: except UnicodeEncodeError: # Else encode it ret = unicode(obj).encode(sys.getdefaultencoding(), 'xmlcharrefreplace') - xmlcharref = Regex(r'&#\d+;') + xmlcharref = Regex('&#\d+;') xmlcharref.setParseAction(lambda t: '\\u' + hex(int(t[0][2:-1]))[2:]) return xmlcharref.transformString(ret) @@ -809,7 +809,7 @@ class ParseResults(object): return None def getName(self): - r""" + """ Returns the results name for this token expression. Useful when several different expressions might match at a particular location. @@ -1226,7 +1226,7 @@ class ParserElement(object): def setParseAction( self, *fns, **kwargs ): """ - Define one or more actions to perform when successfully matching parse element definition. + Define action to perform when successfully matching parse element definition. Parse action fn is a callable method with 0-3 arguments, called as C{fn(s,loc,toks)}, C{fn(loc,toks)}, C{fn(toks)}, or just C{fn()}, where: - s = the original string being parsed (see note below) @@ -1264,7 +1264,7 @@ class ParserElement(object): def addParseAction( self, *fns, **kwargs ): """ - Add one or more parse actions to expression's list of parse actions. See L{I{setParseAction}}. + Add parse action to expression's list of parse actions. See L{I{setParseAction}}. See examples in L{I{copy}}. """ @@ -1443,14 +1443,10 @@ class ParserElement(object): def clear(self): cache.clear() - - def cache_len(self): - return len(cache) self.get = types.MethodType(get, self) self.set = types.MethodType(set, self) self.clear = types.MethodType(clear, self) - self.__len__ = types.MethodType(cache_len, self) if _OrderedDict is not None: class _FifoCache(object): @@ -1464,22 +1460,15 @@ class ParserElement(object): def set(self, key, value): cache[key] = value - while len(cache) > size: - try: - cache.popitem(False) - except KeyError: - pass + if len(cache) > size: + cache.popitem(False) def clear(self): cache.clear() - def cache_len(self): - return len(cache) - self.get = types.MethodType(get, self) self.set = types.MethodType(set, self) self.clear = types.MethodType(clear, self) - self.__len__ = types.MethodType(cache_len, self) else: class _FifoCache(object): @@ -1494,7 +1483,7 @@ class ParserElement(object): def set(self, key, value): cache[key] = value - while len(key_fifo) > size: + if len(cache) > size: cache.pop(key_fifo.popleft(), None) key_fifo.append(key) @@ -1502,13 +1491,9 @@ class ParserElement(object): cache.clear() key_fifo.clear() - def cache_len(self): - return len(cache) - self.get = types.MethodType(get, self) self.set = types.MethodType(set, self) self.clear = types.MethodType(clear, self) - self.__len__ = types.MethodType(cache_len, self) # argument cache for optimizing repeated calls when backtracking through recursive expressions packrat_cache = {} # this is set later by enabledPackrat(); this is here so that resetCache() doesn't fail @@ -1758,12 +1743,8 @@ class ParserElement(object): cap_word = Word(alphas.upper(), alphas.lower()) print(cap_word.searchString("More than Iron, more than Lead, more than Gold I need Electricity")) - - # the sum() builtin can be used to merge results into a single ParseResults object - print(sum(cap_word.searchString("More than Iron, more than Lead, more than Gold I need Electricity"))) prints:: - [['More'], ['Iron'], ['Lead'], ['Gold'], ['I'], ['Electricity']] - ['More', 'Iron', 'Lead', 'Gold', 'I', 'Electricity'] + ['More', 'Iron', 'Lead', 'Gold', 'I'] """ try: return ParseResults([ t for t,s,e in self.scanString( instring, maxMatches ) ]) @@ -1838,7 +1819,7 @@ class ParserElement(object): warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), SyntaxWarning, stacklevel=2) return None - return self + And._ErrorStop() + other + return And( [ self, And._ErrorStop(), other ] ) def __rsub__(self, other ): """ @@ -2741,7 +2722,7 @@ class Word(Token): class Regex(Token): - r""" + """ Token for matching strings that match a given regular expression. Defined with string specifying the regular expression in a form recognized by the inbuilt Python re module. If the given regex contains named groups (defined using C{(?P...)}), these will be preserved as @@ -2930,7 +2911,7 @@ class QuotedString(Token): # replace escaped characters if self.escChar: - ret = re.sub(self.escCharReplacePattern, r"\g<1>", ret) + ret = re.sub(self.escCharReplacePattern,"\g<1>",ret) # replace escaped quotes if self.escQuote: @@ -5039,9 +5020,7 @@ def infixNotation( baseExpr, opList, lpar=Suppress('('), rpar=Suppress(')') ): constants C{opAssoc.RIGHT} and C{opAssoc.LEFT}. - parseAction is the parse action to be associated with expressions matching this operator expression (the - parse action tuple member may be omitted); if the parse action - is passed a tuple or list of functions, this is equivalent to - calling C{setParseAction(*fn)} (L{ParserElement.setParseAction}) + parse action tuple member may be omitted) - lpar - expression for matching left-parentheses (default=C{Suppress('(')}) - rpar - expression for matching right-parentheses (default=C{Suppress(')')}) @@ -5114,10 +5093,7 @@ def infixNotation( baseExpr, opList, lpar=Suppress('('), rpar=Suppress(')') ): else: raise ValueError("operator must indicate right or left associativity") if pa: - if isinstance(pa, (tuple, list)): - matchExpr.setParseAction(*pa) - else: - matchExpr.setParseAction(pa) + matchExpr.setParseAction( pa ) thisExpr <<= ( matchExpr.setName(termName) | lastExpr ) lastExpr = thisExpr ret <<= lastExpr diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/build_meta.py b/thesisenv/lib/python3.6/site-packages/setuptools/build_meta.py index fb657a5..609ea1e 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/build_meta.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/build_meta.py @@ -61,19 +61,6 @@ class Distribution(setuptools.dist.Distribution): distutils.core.Distribution = orig -def _to_str(s): - """ - Convert a filename to a string (on Python 2, explicitly - a byte string, not Unicode) as distutils checks for the - exact type str. - """ - if sys.version_info[0] == 2 and not isinstance(s, str): - # Assume it's Unicode, as that's what the PEP says - # should be provided. - return s.encode(sys.getfilesystemencoding()) - return s - - def _run_setup(setup_script='setup.py'): # Note that we can reuse our build directory between calls # Correctness comes first, then optimization later @@ -122,7 +109,7 @@ def get_requires_for_build_sdist(config_settings=None): def prepare_metadata_for_build_wheel(metadata_directory, config_settings=None): - sys.argv = sys.argv[:1] + ['dist_info', '--egg-base', _to_str(metadata_directory)] + sys.argv = sys.argv[:1] + ['dist_info', '--egg-base', metadata_directory] _run_setup() dist_info_directory = metadata_directory diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/command/bdist_egg.py b/thesisenv/lib/python3.6/site-packages/setuptools/command/bdist_egg.py index 9f8df91..423b818 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/command/bdist_egg.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/command/bdist_egg.py @@ -411,7 +411,7 @@ def scan_module(egg_dir, base, name, stubs): return True # Extension module pkg = base[len(egg_dir) + 1:].replace(os.sep, '.') module = pkg + (pkg and '.' or '') + os.path.splitext(name)[0] - if six.PY2: + if sys.version_info < (3, 3): skip = 8 # skip magic & date elif sys.version_info < (3, 7): skip = 12 # skip magic & date & file size diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/command/build_ext.py b/thesisenv/lib/python3.6/site-packages/setuptools/command/build_ext.py index 60a8a32..ea97b37 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/command/build_ext.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/command/build_ext.py @@ -112,7 +112,7 @@ class build_ext(_build_ext): and get_abi3_suffix() ) if use_abi3: - so_ext = get_config_var('EXT_SUFFIX') + so_ext = _get_config_var_837('EXT_SUFFIX') filename = filename[:-len(so_ext)] filename = filename + get_abi3_suffix() if isinstance(ext, Library): @@ -319,3 +319,13 @@ else: self.create_static_lib( objects, basename, output_dir, debug, target_lang ) + + +def _get_config_var_837(name): + """ + In https://github.com/pypa/setuptools/pull/837, we discovered + Python 3.3.0 exposes the extension suffix under the name 'SO'. + """ + if sys.version_info < (3, 3, 1): + name = 'SO' + return get_config_var(name) diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/command/develop.py b/thesisenv/lib/python3.6/site-packages/setuptools/command/develop.py index fdc9fc4..959c932 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/command/develop.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/command/develop.py @@ -12,8 +12,6 @@ from setuptools.command.easy_install import easy_install from setuptools import namespaces import setuptools -__metaclass__ = type - class develop(namespaces.DevelopInstaller, easy_install): """Set up package for development""" @@ -194,7 +192,7 @@ class develop(namespaces.DevelopInstaller, easy_install): return easy_install.install_wrapper_scripts(self, dist) -class VersionlessRequirement: +class VersionlessRequirement(object): """ Adapt a pkg_resources.Distribution to simply return the project name as the 'requirement' so that scripts will work across diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/command/easy_install.py b/thesisenv/lib/python3.6/site-packages/setuptools/command/easy_install.py index dd17cc1..a6f6143 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/command/easy_install.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/command/easy_install.py @@ -40,13 +40,12 @@ import subprocess import shlex import io -from sysconfig import get_config_vars, get_path - from setuptools.extern import six from setuptools.extern.six.moves import configparser, map from setuptools import Command from setuptools.sandbox import run_setup +from setuptools.py31compat import get_path, get_config_vars from setuptools.py27compat import rmtree_safe from setuptools.command import setopt from setuptools.archive_util import unpack_archive @@ -63,8 +62,6 @@ from pkg_resources import ( ) import pkg_resources.py31compat -__metaclass__ = type - # Turn on PEP440Warnings warnings.filterwarnings("default", category=pkg_resources.PEP440Warning) @@ -96,7 +93,7 @@ def samefile(p1, p2): if six.PY2: - def _to_bytes(s): + def _to_ascii(s): return s def isascii(s): @@ -107,8 +104,8 @@ if six.PY2: return False else: - def _to_bytes(s): - return s.encode('utf8') + def _to_ascii(s): + return s.encode('ascii') def isascii(s): try: @@ -322,7 +319,7 @@ class easy_install(Command): self.all_site_dirs.append(normalize_path(d)) if not self.editable: self.check_site_dir() - self.index_url = self.index_url or "https://pypi.org/simple/" + self.index_url = self.index_url or "https://pypi.python.org/simple" self.shadow_path = self.all_site_dirs[:] for path_item in self.install_dir, normalize_path(self.script_dir): if path_item not in self.shadow_path: @@ -805,7 +802,7 @@ class easy_install(Command): if is_script: body = self._load_template(dev_path) % locals() script_text = ScriptWriter.get_header(script_text) + body - self.write_script(script_name, _to_bytes(script_text), 'b') + self.write_script(script_name, _to_ascii(script_text), 'b') @staticmethod def _load_template(dev_path): @@ -2052,7 +2049,7 @@ class WindowsCommandSpec(CommandSpec): split_args = dict(posix=False) -class ScriptWriter: +class ScriptWriter(object): """ Encapsulates behavior around writing entry point scripts for console and gui apps. diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/command/egg_info.py b/thesisenv/lib/python3.6/site-packages/setuptools/command/egg_info.py index 74350cb..f3e604d 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/command/egg_info.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/command/egg_info.py @@ -116,33 +116,7 @@ def translate_pattern(glob): return re.compile(pat, flags=re.MULTILINE|re.DOTALL) -class InfoCommon: - tag_build = None - tag_date = None - - @property - def name(self): - return safe_name(self.distribution.get_name()) - - def tagged_version(self): - version = self.distribution.get_version() - # egg_info may be called more than once for a distribution, - # in which case the version string already contains all tags. - if self.vtags and version.endswith(self.vtags): - return safe_version(version) - return safe_version(version + self.vtags) - - def tags(self): - version = '' - if self.tag_build: - version += self.tag_build - if self.tag_date: - version += time.strftime("-%Y%m%d") - return version - vtags = property(tags) - - -class egg_info(InfoCommon, Command): +class egg_info(Command): description = "create a distribution's .egg-info directory" user_options = [ @@ -159,11 +133,14 @@ class egg_info(InfoCommon, Command): } def initialize_options(self): - self.egg_base = None self.egg_name = None - self.egg_info = None self.egg_version = None + self.egg_base = None + self.egg_info = None + self.tag_build = None + self.tag_date = 0 self.broken_egg_info = False + self.vtags = None #################################### # allow the 'tag_svn_revision' to be detected and @@ -191,12 +168,10 @@ class egg_info(InfoCommon, Command): edit_config(filename, dict(egg_info=egg_info)) def finalize_options(self): - # Note: we need to capture the current value returned - # by `self.tagged_version()`, so we can later update - # `self.distribution.metadata.version` without - # repercussions. - self.egg_name = self.name + self.egg_name = safe_name(self.distribution.get_name()) + self.vtags = self.tags() self.egg_version = self.tagged_version() + parsed_version = parse_version(self.egg_version) try: @@ -279,6 +254,14 @@ class egg_info(InfoCommon, Command): if not self.dry_run: os.unlink(filename) + def tagged_version(self): + version = self.distribution.get_version() + # egg_info may be called more than once for a distribution, + # in which case the version string already contains all tags. + if self.vtags and version.endswith(self.vtags): + return safe_version(version) + return safe_version(version + self.vtags) + def run(self): self.mkpath(self.egg_info) installer = self.distribution.fetch_build_egg @@ -294,6 +277,14 @@ class egg_info(InfoCommon, Command): self.find_sources() + def tags(self): + version = '' + if self.tag_build: + version += self.tag_build + if self.tag_date: + version += time.strftime("-%Y%m%d") + return version + def find_sources(self): """Generate SOURCES.txt manifest file""" manifest_filename = os.path.join(self.egg_info, "SOURCES.txt") diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/command/register.py b/thesisenv/lib/python3.6/site-packages/setuptools/command/register.py index 98bc015..8d6336a 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/command/register.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/command/register.py @@ -1,4 +1,3 @@ -from distutils import log import distutils.command.register as orig @@ -6,13 +5,6 @@ class register(orig.register): __doc__ = orig.register.__doc__ def run(self): - try: - # Make sure that we are using valid current name/version info - self.run_command('egg_info') - orig.register.run(self) - finally: - self.announce( - "WARNING: Registering is deprecated, use twine to " - "upload instead (https://pypi.org/p/twine/)", - log.WARN - ) + # Make sure that we are using valid current name/version info + self.run_command('egg_info') + orig.register.run(self) diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/command/test.py b/thesisenv/lib/python3.6/site-packages/setuptools/command/test.py index dde0118..51aee1f 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/command/test.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/command/test.py @@ -16,8 +16,6 @@ from pkg_resources import (resource_listdir, resource_exists, normalize_path, add_activation_listener, require, EntryPoint) from setuptools import Command -__metaclass__ = type - class ScanningLoader(TestLoader): @@ -60,7 +58,7 @@ class ScanningLoader(TestLoader): # adapted from jaraco.classes.properties:NonDataProperty -class NonDataProperty: +class NonDataProperty(object): def __init__(self, fget): self.fget = fget diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/command/upload.py b/thesisenv/lib/python3.6/site-packages/setuptools/command/upload.py index 72f24d8..a44173a 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/command/upload.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/command/upload.py @@ -1,5 +1,4 @@ import getpass -from distutils import log from distutils.command import upload as orig @@ -9,16 +8,6 @@ class upload(orig.upload): in a variety of different ways. """ - def run(self): - try: - orig.upload.run(self) - finally: - self.announce( - "WARNING: Uploading via this command is deprecated, use twine " - "to upload instead (https://pypi.org/p/twine/)", - log.WARN - ) - def finalize_options(self): orig.upload.finalize_options(self) self.username = ( diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/config.py b/thesisenv/lib/python3.6/site-packages/setuptools/config.py index 0da3dbc..8eddcae 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/config.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/config.py @@ -7,11 +7,7 @@ from functools import partial from importlib import import_module from distutils.errors import DistutilsOptionError, DistutilsFileError -from setuptools.extern.packaging.version import LegacyVersion, parse -from setuptools.extern.six import string_types, PY3 - - -__metaclass__ = type +from setuptools.extern.six import string_types def read_configuration( @@ -105,18 +101,18 @@ def parse_configuration( If False exceptions are propagated as expected. :rtype: list """ + meta = ConfigMetadataHandler( + distribution.metadata, command_options, ignore_option_errors) + meta.parse() + options = ConfigOptionsHandler( distribution, command_options, ignore_option_errors) options.parse() - meta = ConfigMetadataHandler( - distribution.metadata, command_options, ignore_option_errors, distribution.package_dir) - meta.parse() - return meta, options -class ConfigHandler: +class ConfigHandler(object): """Handles metadata supplied in configuration files.""" section_prefix = None @@ -284,7 +280,7 @@ class ConfigHandler: return f.read() @classmethod - def _parse_attr(cls, value, package_dir=None): + def _parse_attr(cls, value): """Represents value as a module attribute. Examples: @@ -304,21 +300,7 @@ class ConfigHandler: module_name = '.'.join(attrs_path) module_name = module_name or '__init__' - parent_path = os.getcwd() - if package_dir: - if attrs_path[0] in package_dir: - # A custom path was specified for the module we want to import - custom_path = package_dir[attrs_path[0]] - parts = custom_path.rsplit('/', 1) - if len(parts) > 1: - parent_path = os.path.join(os.getcwd(), parts[0]) - module_name = parts[1] - else: - module_name = custom_path - elif '' in package_dir: - # A custom parent directory was specified for all root modules - parent_path = os.path.join(os.getcwd(), package_dir['']) - sys.path.insert(0, parent_path) + sys.path.insert(0, os.getcwd()) try: module = import_module(module_name) value = getattr(module, attr_name) @@ -417,12 +399,6 @@ class ConfigMetadataHandler(ConfigHandler): """ - def __init__(self, target_obj, options, ignore_option_errors=False, - package_dir=None): - super(ConfigMetadataHandler, self).__init__(target_obj, options, - ignore_option_errors) - self.package_dir = package_dir - @property def parsers(self): """Metadata item name to parser function mapping.""" @@ -451,19 +427,7 @@ class ConfigMetadataHandler(ConfigHandler): :rtype: str """ - version = self._parse_file(value) - - if version != value: - version = version.strip() - # Be strict about versions loaded from file because it's easy to - # accidentally include newlines and other unintended content - if isinstance(parse(version), LegacyVersion): - raise DistutilsOptionError('Version loaded from %s does not comply with PEP 440: %s' % ( - value, version - )) - return version - - version = self._parse_attr(value, self.package_dir) + version = self._parse_attr(value) if callable(version): version = version() @@ -515,24 +479,16 @@ class ConfigOptionsHandler(ConfigHandler): :param value: :rtype: list """ - find_directives = ['find:', 'find_namespace:'] - trimmed_value = value.strip() + find_directive = 'find:' - if not trimmed_value in find_directives: + if not value.startswith(find_directive): return self._parse_list(value) - findns = trimmed_value == find_directives[1] - if findns and not PY3: - raise DistutilsOptionError('find_namespace: directive is unsupported on Python < 3.3') - # Read function arguments from a dedicated section. find_kwargs = self.parse_section_packages__find( self.sections.get('packages.find', {})) - if findns: - from setuptools import find_namespace_packages as find_packages - else: - from setuptools import find_packages + from setuptools import find_packages return find_packages(**find_kwargs) diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/dist.py b/thesisenv/lib/python3.6/site-packages/setuptools/dist.py index 6ee4a97..284d922 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/dist.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/dist.py @@ -123,6 +123,15 @@ def write_pkg_file(self, file): file.write('Provides-Extra: %s\n' % extra) +# from Python 3.4 +def write_pkg_info(self, base_dir): + """Write the PKG-INFO file into the release tree. + """ + with open(os.path.join(base_dir, 'PKG-INFO'), 'w', + encoding='UTF-8') as pkg_info: + self.write_pkg_file(pkg_info) + + sequence = tuple, list @@ -328,12 +337,6 @@ class Distribution(Distribution_parse_config_files, _Distribution): distribution for the included and excluded features. """ - _DISTUTILS_UNSUPPORTED_METADATA = { - 'long_description_content_type': None, - 'project_urls': dict, - 'provides_extras': set, - } - _patched_dist = None def patch_missing_pkg_info(self, attrs): @@ -359,29 +362,25 @@ class Distribution(Distribution_parse_config_files, _Distribution): self.require_features = [] self.features = {} self.dist_files = [] - # Filter-out setuptools' specific options. self.src_root = attrs.pop("src_root", None) self.patch_missing_pkg_info(attrs) + self.project_urls = attrs.get('project_urls', {}) self.dependency_links = attrs.pop('dependency_links', []) self.setup_requires = attrs.pop('setup_requires', []) for ep in pkg_resources.iter_entry_points('distutils.setup_keywords'): vars(self).setdefault(ep.name, None) - _Distribution.__init__(self, { - k: v for k, v in attrs.items() - if k not in self._DISTUTILS_UNSUPPORTED_METADATA - }) + _Distribution.__init__(self, attrs) - # Fill-in missing metadata fields not supported by distutils. - # Note some fields may have been set by other tools (e.g. pbr) - # above; they are taken preferrentially to setup() arguments - for option, default in self._DISTUTILS_UNSUPPORTED_METADATA.items(): - for source in self.metadata.__dict__, attrs: - if option in source: - value = source[option] - break - else: - value = default() if default else None - setattr(self.metadata, option, value) + # The project_urls attribute may not be supported in distutils, so + # prime it here from our value if not automatically set + self.metadata.project_urls = getattr( + self.metadata, 'project_urls', self.project_urls) + self.metadata.long_description_content_type = attrs.get( + 'long_description_content_type' + ) + self.metadata.provides_extras = getattr( + self.metadata, 'provides_extras', set() + ) if isinstance(self.metadata.version, numbers.Number): # Some people apparently take "version number" too literally :) diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/extern/__init__.py b/thesisenv/lib/python3.6/site-packages/setuptools/extern/__init__.py index cb2fa32..da3d668 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/extern/__init__.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/extern/__init__.py @@ -48,7 +48,7 @@ class VendorImporter: # on later Python versions to cause relative imports # in the vendor package to resolve the same modules # as those going through this importer. - if sys.version_info >= (3, ): + if sys.version_info > (3, 3): del sys.modules[extant] return mod except ImportError: diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/monkey.py b/thesisenv/lib/python3.6/site-packages/setuptools/monkey.py index 05a738b..d9eb7d7 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/monkey.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/monkey.py @@ -75,6 +75,8 @@ def patch_all(): needs_warehouse = ( sys.version_info < (2, 7, 13) or + (3, 0) < sys.version_info < (3, 3, 7) + or (3, 4) < sys.version_info < (3, 4, 6) or (3, 5) < sys.version_info <= (3, 5, 3) @@ -85,6 +87,7 @@ def patch_all(): distutils.config.PyPIRCCommand.DEFAULT_REPOSITORY = warehouse _patch_distribution_metadata_write_pkg_file() + _patch_distribution_metadata_write_pkg_info() # Install Distribution throughout the distutils for module in distutils.dist, distutils.core, distutils.cmd: @@ -108,6 +111,21 @@ def _patch_distribution_metadata_write_pkg_file(): ) +def _patch_distribution_metadata_write_pkg_info(): + """ + Workaround issue #197 - Python 3 prior to 3.2.2 uses an environment-local + encoding to save the pkg_info. Monkey-patch its write_pkg_info method to + correct this undesirable behavior. + """ + environment_local = (3,) <= sys.version_info[:3] < (3, 2, 2) + if not environment_local: + return + + distutils.dist.DistributionMetadata.write_pkg_info = ( + setuptools.dist.write_pkg_info + ) + + def patch_func(replacement, target_mod, func_name): """ Patch func_name in target_mod with replacement diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/msvc.py b/thesisenv/lib/python3.6/site-packages/setuptools/msvc.py index b9c472f..5e20b3f 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/msvc.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/msvc.py @@ -232,7 +232,8 @@ def _augment_exception(exc, version, arch=''): elif version >= 14.0: # For VC++ 14.0 Redirect user to Visual C++ Build Tools message += (' Get it with "Microsoft Visual C++ Build Tools": ' - r'https://visualstudio.microsoft.com/downloads/') + r'http://landinghub.visualstudio.com/' + 'visual-cpp-build-tools') exc.args = (message, ) diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/package_index.py b/thesisenv/lib/python3.6/site-packages/setuptools/package_index.py index cda54b7..914b5e6 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/package_index.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/package_index.py @@ -26,13 +26,12 @@ from setuptools.py27compat import get_all_headers from setuptools.py33compat import unescape from setuptools.wheel import Wheel -__metaclass__ = type - EGG_FRAGMENT = re.compile(r'^egg=([-A-Za-z0-9_.+!]+)$') -HREF = re.compile(r"""href\s*=\s*['"]?([^'"> ]+)""", re.I) +HREF = re.compile("""href\\s*=\\s*['"]?([^'"> ]+)""", re.I) +# this is here to fix emacs' cruddy broken syntax highlighting PYPI_MD5 = re.compile( - r'([^<]+)\n\s+\(md5\)' + '([^<]+)\n\\s+\\(md5\\)' ) URL_SCHEME = re.compile('([-+.a-z0-9]{2,}):', re.I).match EXTENSIONS = ".tar.gz .tar.bz2 .tar .zip .tgz".split() @@ -236,7 +235,7 @@ def find_external_links(url, page): yield urllib.parse.urljoin(url, htmldecode(match.group(1))) -class ContentChecker: +class ContentChecker(object): """ A null content checker that defines the interface for checking content """ @@ -298,7 +297,7 @@ class PackageIndex(Environment): """A distribution index that scans web pages for download URLs""" def __init__( - self, index_url="https://pypi.org/simple/", hosts=('*',), + self, index_url="https://pypi.python.org/simple", hosts=('*',), ca_bundle=None, verify_ssl=True, *args, **kw ): Environment.__init__(self, *args, **kw) @@ -934,19 +933,12 @@ entity_sub = re.compile(r'&(#(\d+|x[\da-fA-F]+)|[\w.:-]+);?').sub def decode_entity(match): - what = match.group(0) + what = match.group(1) return unescape(what) def htmldecode(text): - """ - Decode HTML entities in the given text. - - >>> htmldecode( - ... 'https://../package_name-0.1.2.tar.gz' - ... '?tokena=A&tokenb=B">package_name-0.1.2.tar.gz') - 'https://../package_name-0.1.2.tar.gz?tokena=A&tokenb=B">package_name-0.1.2.tar.gz' - """ + """Decode HTML entities in the given text.""" return entity_sub(decode_entity, text) @@ -988,7 +980,7 @@ def _encode_auth(auth): return encoded.replace('\n', '') -class Credential: +class Credential(object): """ A username/password pair. Use like a namedtuple. """ diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/pep425tags.py b/thesisenv/lib/python3.6/site-packages/setuptools/pep425tags.py index 8bf4277..dfe55d5 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/pep425tags.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/pep425tags.py @@ -4,7 +4,6 @@ from __future__ import absolute_import import distutils.util -from distutils import log import platform import re import sys @@ -12,8 +11,6 @@ import sysconfig import warnings from collections import OrderedDict -from .extern import six - from . import glibc _osx_arch_pat = re.compile(r'(.+)_(\d+)_(\d+)_(.+)') @@ -72,8 +69,8 @@ def get_flag(var, fallback, expected=True, warn=True): val = get_config_var(var) if val is None: if warn: - log.debug("Config variable '%s' is unset, Python ABI tag may " - "be incorrect", var) + warnings.warn("Config variable '{0}' is unset, Python ABI tag may " + "be incorrect".format(var), RuntimeWarning, 2) return fallback() return val == expected @@ -99,8 +96,8 @@ def get_abi_tag(): lambda: sys.maxunicode == 0x10ffff, expected=4, warn=(impl == 'cp' and - six.PY2)) \ - and six.PY2: + sys.version_info < (3, 3))) \ + and sys.version_info < (3, 3): u = 'u' abi = '%s%s%s%s%s' % (impl, get_impl_ver(), d, m, u) elif soabi and soabi.startswith('cpython-'): diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/py31compat.py b/thesisenv/lib/python3.6/site-packages/setuptools/py31compat.py index 1a0705e..4ea9532 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/py31compat.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/py31compat.py @@ -1,6 +1,15 @@ -__all__ = [] +__all__ = ['get_config_vars', 'get_path'] -__metaclass__ = type +try: + # Python 2.7 or >=3.2 + from sysconfig import get_config_vars, get_path +except ImportError: + from distutils.sysconfig import get_config_vars, get_python_lib + + def get_path(name): + if name not in ('platlib', 'purelib'): + raise ValueError("Name must be purelib or platlib") + return get_python_lib(name == 'platlib') try: @@ -10,7 +19,7 @@ except ImportError: import shutil import tempfile - class TemporaryDirectory: + class TemporaryDirectory(object): """ Very simple temporary directory context manager. Will try to delete afterward, but will also ignore OS and similar diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/py33compat.py b/thesisenv/lib/python3.6/site-packages/setuptools/py33compat.py index 87cf539..2a73ebb 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/py33compat.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/py33compat.py @@ -10,12 +10,11 @@ except ImportError: from setuptools.extern import six from setuptools.extern.six.moves import html_parser -__metaclass__ = type OpArg = collections.namedtuple('OpArg', 'opcode arg') -class Bytecode_compat: +class Bytecode_compat(object): def __init__(self, code): self.code = code diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/script (dev).tmpl b/thesisenv/lib/python3.6/site-packages/setuptools/script (dev).tmpl index 39a24b0..d58b1bb 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/script (dev).tmpl +++ b/thesisenv/lib/python3.6/site-packages/setuptools/script (dev).tmpl @@ -2,5 +2,4 @@ __requires__ = %(spec)r __import__('pkg_resources').require(%(spec)r) __file__ = %(dev_path)r -with open(__file__) as f: - exec(compile(f.read(), __file__, 'exec')) +exec(compile(open(__file__).read(), __file__, 'exec')) diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/site-patch.py b/thesisenv/lib/python3.6/site-packages/setuptools/site-patch.py index 40b00de..0d2d2ff 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/site-patch.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/site-patch.py @@ -23,7 +23,7 @@ def __boot(): break else: try: - import imp # Avoid import loop in Python 3 + import imp # Avoid import loop in Python >= 3.3 stream, path, descr = imp.find_module('site', [item]) except ImportError: continue diff --git a/thesisenv/lib/python3.6/site-packages/setuptools/wheel.py b/thesisenv/lib/python3.6/site-packages/setuptools/wheel.py index 95a794a..37dfa53 100644 --- a/thesisenv/lib/python3.6/site-packages/setuptools/wheel.py +++ b/thesisenv/lib/python3.6/site-packages/setuptools/wheel.py @@ -1,29 +1,24 @@ -"""Wheels support.""" +'''Wheels support.''' from distutils.util import get_platform import email import itertools import os -import posixpath import re import zipfile from pkg_resources import Distribution, PathMetadata, parse_version -from setuptools.extern.packaging.utils import canonicalize_name from setuptools.extern.six import PY3 from setuptools import Distribution as SetuptoolsDistribution from setuptools import pep425tags from setuptools.command.egg_info import write_requirements -__metaclass__ = type - - WHEEL_NAME = re.compile( r"""^(?P.+?)-(?P\d.*?) ((-(?P\d.*?))?-(?P.+?)-(?P.+?)-(?P.+?) )\.whl$""", - re.VERBOSE).match +re.VERBOSE).match NAMESPACE_PACKAGE_INIT = '''\ try: @@ -55,7 +50,7 @@ def unpack(src_dir, dst_dir): os.rmdir(dirpath) -class Wheel: +class Wheel(object): def __init__(self, filename): match = WHEEL_NAME(os.path.basename(filename)) @@ -67,11 +62,9 @@ class Wheel: def tags(self): '''List tags (py_version, abi, platform) supported by this wheel.''' - return itertools.product( - self.py_version.split('.'), - self.abi.split('.'), - self.platform.split('.'), - ) + return itertools.product(self.py_version.split('.'), + self.abi.split('.'), + self.platform.split('.')) def is_compatible(self): '''Is the wheel is compatible with the current platform?''' @@ -84,127 +77,87 @@ class Wheel: platform=(None if self.platform == 'any' else get_platform()), ).egg_name() + '.egg' - def get_dist_info(self, zf): - # find the correct name of the .dist-info dir in the wheel file - for member in zf.namelist(): - dirname = posixpath.dirname(member) - if (dirname.endswith('.dist-info') and - canonicalize_name(dirname).startswith( - canonicalize_name(self.project_name))): - return dirname - raise ValueError("unsupported wheel format. .dist-info not found") - def install_as_egg(self, destination_eggdir): '''Install wheel as an egg directory.''' with zipfile.ZipFile(self.filename) as zf: - self._install_as_egg(destination_eggdir, zf) - - def _install_as_egg(self, destination_eggdir, zf): - dist_basename = '%s-%s' % (self.project_name, self.version) - dist_info = self.get_dist_info(zf) - dist_data = '%s.data' % dist_basename - egg_info = os.path.join(destination_eggdir, 'EGG-INFO') - - self._convert_metadata(zf, destination_eggdir, dist_info, egg_info) - self._move_data_entries(destination_eggdir, dist_data) - self._fix_namespace_packages(egg_info, destination_eggdir) - - @staticmethod - def _convert_metadata(zf, destination_eggdir, dist_info, egg_info): - def get_metadata(name): - with zf.open(posixpath.join(dist_info, name)) as fp: - value = fp.read().decode('utf-8') if PY3 else fp.read() - return email.parser.Parser().parsestr(value) - - wheel_metadata = get_metadata('WHEEL') - # Check wheel format version is supported. - wheel_version = parse_version(wheel_metadata.get('Wheel-Version')) - wheel_v1 = ( - parse_version('1.0') <= wheel_version < parse_version('2.0dev0') - ) - if not wheel_v1: - raise ValueError( - 'unsupported wheel format version: %s' % wheel_version) - # Extract to target directory. - os.mkdir(destination_eggdir) - zf.extractall(destination_eggdir) - # Convert metadata. - dist_info = os.path.join(destination_eggdir, dist_info) - dist = Distribution.from_location( - destination_eggdir, dist_info, - metadata=PathMetadata(destination_eggdir, dist_info), - ) - - # Note: Evaluate and strip markers now, - # as it's difficult to convert back from the syntax: - # foobar; "linux" in sys_platform and extra == 'test' - def raw_req(req): - req.marker = None - return str(req) - install_requires = list(sorted(map(raw_req, dist.requires()))) - extras_require = { - extra: sorted( - req - for req in map(raw_req, dist.requires((extra,))) - if req not in install_requires + dist_basename = '%s-%s' % (self.project_name, self.version) + dist_info = '%s.dist-info' % dist_basename + dist_data = '%s.data' % dist_basename + def get_metadata(name): + with zf.open('%s/%s' % (dist_info, name)) as fp: + value = fp.read().decode('utf-8') if PY3 else fp.read() + return email.parser.Parser().parsestr(value) + wheel_metadata = get_metadata('WHEEL') + dist_metadata = get_metadata('METADATA') + # Check wheel format version is supported. + wheel_version = parse_version(wheel_metadata.get('Wheel-Version')) + if not parse_version('1.0') <= wheel_version < parse_version('2.0dev0'): + raise ValueError('unsupported wheel format version: %s' % wheel_version) + # Extract to target directory. + os.mkdir(destination_eggdir) + zf.extractall(destination_eggdir) + # Convert metadata. + dist_info = os.path.join(destination_eggdir, dist_info) + dist = Distribution.from_location( + destination_eggdir, dist_info, + metadata=PathMetadata(destination_eggdir, dist_info) ) - for extra in dist.extras - } - os.rename(dist_info, egg_info) - os.rename( - os.path.join(egg_info, 'METADATA'), - os.path.join(egg_info, 'PKG-INFO'), - ) - setup_dist = SetuptoolsDistribution( - attrs=dict( + # Note: we need to evaluate and strip markers now, + # as we can't easily convert back from the syntax: + # foobar; "linux" in sys_platform and extra == 'test' + def raw_req(req): + req.marker = None + return str(req) + install_requires = list(sorted(map(raw_req, dist.requires()))) + extras_require = { + extra: list(sorted( + req + for req in map(raw_req, dist.requires((extra,))) + if req not in install_requires + )) + for extra in dist.extras + } + egg_info = os.path.join(destination_eggdir, 'EGG-INFO') + os.rename(dist_info, egg_info) + os.rename(os.path.join(egg_info, 'METADATA'), + os.path.join(egg_info, 'PKG-INFO')) + setup_dist = SetuptoolsDistribution(attrs=dict( install_requires=install_requires, extras_require=extras_require, - ), - ) - write_requirements( - setup_dist.get_command_obj('egg_info'), - None, - os.path.join(egg_info, 'requires.txt'), - ) - - @staticmethod - def _move_data_entries(destination_eggdir, dist_data): - """Move data entries to their correct location.""" - dist_data = os.path.join(destination_eggdir, dist_data) - dist_data_scripts = os.path.join(dist_data, 'scripts') - if os.path.exists(dist_data_scripts): - egg_info_scripts = os.path.join( - destination_eggdir, 'EGG-INFO', 'scripts') - os.mkdir(egg_info_scripts) - for entry in os.listdir(dist_data_scripts): - # Remove bytecode, as it's not properly handled - # during easy_install scripts install phase. - if entry.endswith('.pyc'): - os.unlink(os.path.join(dist_data_scripts, entry)) - else: - os.rename( - os.path.join(dist_data_scripts, entry), - os.path.join(egg_info_scripts, entry), - ) - os.rmdir(dist_data_scripts) - for subdir in filter(os.path.exists, ( - os.path.join(dist_data, d) - for d in ('data', 'headers', 'purelib', 'platlib') - )): - unpack(subdir, destination_eggdir) - if os.path.exists(dist_data): - os.rmdir(dist_data) - - @staticmethod - def _fix_namespace_packages(egg_info, destination_eggdir): - namespace_packages = os.path.join( - egg_info, 'namespace_packages.txt') - if os.path.exists(namespace_packages): - with open(namespace_packages) as fp: - namespace_packages = fp.read().split() - for mod in namespace_packages: - mod_dir = os.path.join(destination_eggdir, *mod.split('.')) - mod_init = os.path.join(mod_dir, '__init__.py') - if os.path.exists(mod_dir) and not os.path.exists(mod_init): - with open(mod_init, 'w') as fp: - fp.write(NAMESPACE_PACKAGE_INIT) + )) + write_requirements(setup_dist.get_command_obj('egg_info'), + None, os.path.join(egg_info, 'requires.txt')) + # Move data entries to their correct location. + dist_data = os.path.join(destination_eggdir, dist_data) + dist_data_scripts = os.path.join(dist_data, 'scripts') + if os.path.exists(dist_data_scripts): + egg_info_scripts = os.path.join(destination_eggdir, + 'EGG-INFO', 'scripts') + os.mkdir(egg_info_scripts) + for entry in os.listdir(dist_data_scripts): + # Remove bytecode, as it's not properly handled + # during easy_install scripts install phase. + if entry.endswith('.pyc'): + os.unlink(os.path.join(dist_data_scripts, entry)) + else: + os.rename(os.path.join(dist_data_scripts, entry), + os.path.join(egg_info_scripts, entry)) + os.rmdir(dist_data_scripts) + for subdir in filter(os.path.exists, ( + os.path.join(dist_data, d) + for d in ('data', 'headers', 'purelib', 'platlib') + )): + unpack(subdir, destination_eggdir) + if os.path.exists(dist_data): + os.rmdir(dist_data) + # Fix namespace packages. + namespace_packages = os.path.join(egg_info, 'namespace_packages.txt') + if os.path.exists(namespace_packages): + with open(namespace_packages) as fp: + namespace_packages = fp.read().split() + for mod in namespace_packages: + mod_dir = os.path.join(destination_eggdir, *mod.split('.')) + mod_init = os.path.join(mod_dir, '__init__.py') + if os.path.exists(mod_dir) and not os.path.exists(mod_init): + with open(mod_init, 'w') as fp: + fp.write(NAMESPACE_PACKAGE_INIT)