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 0000000..64bf95f Binary files /dev/null and b/doc/graduate-thesis/Pruefungsrechtliche_Erklaerung_und_Erklaerung_zur_Veroeffentlichung_der_Abschlussarbeit_public.pdf differ 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)