fixed table of content
This commit is contained in:
parent
c2c238fe26
commit
932959d6b0
22
doc/graduate-thesis/.texpadtmp/Thesis.aux
Normal file
22
doc/graduate-thesis/.texpadtmp/Thesis.aux
Normal file
@ -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} }
|
0
doc/graduate-thesis/.texpadtmp/Thesis.bbl
Normal file
0
doc/graduate-thesis/.texpadtmp/Thesis.bbl
Normal file
48
doc/graduate-thesis/.texpadtmp/Thesis.blg
Normal file
48
doc/graduate-thesis/.texpadtmp/Thesis.blg
Normal file
@ -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)
|
613
doc/graduate-thesis/.texpadtmp/Thesis.log
Normal file
613
doc/graduate-thesis/.texpadtmp/Thesis.log
Normal file
@ -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!
|
1
doc/graduate-thesis/.texpadtmp/Thesis.out
Normal file
1
doc/graduate-thesis/.texpadtmp/Thesis.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
\BOOKMARK [0][-]{dummy.1}{\376\377\000A\000b\000s\000t\000r\000a\000k\000t}{}% 1
|
5
doc/graduate-thesis/.texpadtmp/Thesis.toc
Normal file
5
doc/graduate-thesis/.texpadtmp/Thesis.toc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
\contentsline {chapter}{Abstrakt}{}
|
||||||
|
\vspace {1em}\global \let \gdef empty{empty}
|
||||||
|
\vspace {2em}
|
||||||
|
\vspace {2em}
|
||||||
|
\contentsline {chapter}{}{}
|
0
doc/graduate-thesis/Chapters/Chapter1.aux
Normal file
0
doc/graduate-thesis/Chapters/Chapter1.aux
Normal file
Binary file not shown.
@ -1,12 +1,11 @@
|
|||||||
#!/Users/Esthi/thesis_ek/thesisenv/bin/python
|
#!/Users/Esthi/thesis_ek/thesisenv/bin/python3
|
||||||
# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==33.1.1','console_scripts','easy_install'
|
|
||||||
__requires__ = 'setuptools==33.1.1'
|
# -*- coding: utf-8 -*-
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
from pkg_resources import load_entry_point
|
|
||||||
|
from setuptools.command.easy_install import main
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
sys.exit(
|
sys.exit(main())
|
||||||
load_entry_point('setuptools==33.1.1', 'console_scripts', 'easy_install')()
|
|
||||||
)
|
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
#!/Users/Esthi/thesis_ek/thesisenv/bin/python
|
#!/Users/Esthi/thesis_ek/thesisenv/bin/python3
|
||||||
# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==33.1.1','console_scripts','easy_install-3.6'
|
|
||||||
__requires__ = 'setuptools==33.1.1'
|
# -*- coding: utf-8 -*-
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
from pkg_resources import load_entry_point
|
|
||||||
|
from setuptools.command.easy_install import main
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
sys.exit(
|
sys.exit(main())
|
||||||
load_entry_point('setuptools==33.1.1', 'console_scripts', 'easy_install-3.6')()
|
|
||||||
)
|
|
||||||
|
@ -47,11 +47,6 @@ except ImportError:
|
|||||||
# Python 3.2 compatibility
|
# Python 3.2 compatibility
|
||||||
import imp as _imp
|
import imp as _imp
|
||||||
|
|
||||||
try:
|
|
||||||
FileExistsError
|
|
||||||
except NameError:
|
|
||||||
FileExistsError = OSError
|
|
||||||
|
|
||||||
from pkg_resources.extern import six
|
from pkg_resources.extern import six
|
||||||
from pkg_resources.extern.six.moves import urllib, map, filter
|
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')
|
__import__('pkg_resources.extern.packaging.markers')
|
||||||
|
|
||||||
|
|
||||||
__metaclass__ = type
|
if (3, 0) < sys.version_info < (3, 3):
|
||||||
|
raise RuntimeError("Python 3.3 or later is required")
|
||||||
|
|
||||||
if (3, 0) < sys.version_info < (3, 4):
|
|
||||||
raise RuntimeError("Python 3.4 or later is required")
|
|
||||||
|
|
||||||
if six.PY2:
|
if six.PY2:
|
||||||
# Those builtin exceptions are only defined in Python 3
|
# 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
|
XXX Currently this is the same as ``distutils.util.get_platform()``, but it
|
||||||
needs some hacks for Linux and Mac OS X.
|
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()
|
plat = get_platform()
|
||||||
if sys.platform == "darwin" and not plat.startswith('macosx-'):
|
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()``)"""
|
"""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)"""
|
"""A collection of active distributions on sys.path (or a similar list)"""
|
||||||
|
|
||||||
def __init__(self, entries=None):
|
def __init__(self, entries=None):
|
||||||
@ -645,12 +641,13 @@ class WorkingSet:
|
|||||||
distributions in the working set, otherwise only ones matching
|
distributions in the working set, otherwise only ones matching
|
||||||
both `group` and `name` are yielded (in distribution order).
|
both `group` and `name` are yielded (in distribution order).
|
||||||
"""
|
"""
|
||||||
return (
|
for dist in self:
|
||||||
entry
|
entries = dist.get_entry_map(group)
|
||||||
for dist in self
|
if name is None:
|
||||||
for entry in dist.get_entry_map(group).values()
|
for ep in entries.values():
|
||||||
if name is None or name == entry.name
|
yield ep
|
||||||
)
|
elif name in entries:
|
||||||
|
yield entries[name]
|
||||||
|
|
||||||
def run_script(self, requires, script_name):
|
def run_script(self, requires, script_name):
|
||||||
"""Locate distribution for `requires` and run `script_name` script"""
|
"""Locate distribution for `requires` and run `script_name` script"""
|
||||||
@ -951,7 +948,7 @@ class _ReqExtras(dict):
|
|||||||
return not req.marker or any(extra_evals)
|
return not req.marker or any(extra_evals)
|
||||||
|
|
||||||
|
|
||||||
class Environment:
|
class Environment(object):
|
||||||
"""Searchable snapshot of distributions on a search path"""
|
"""Searchable snapshot of distributions on a search path"""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
@ -966,7 +963,7 @@ class Environment:
|
|||||||
`platform` is an optional string specifying the name of the platform
|
`platform` is an optional string specifying the name of the platform
|
||||||
that platform-specific distributions must be compatible with. If
|
that platform-specific distributions must be compatible with. If
|
||||||
unspecified, it defaults to the current platform. `python` is an
|
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.
|
it defaults to the current version.
|
||||||
|
|
||||||
You may explicitly set `platform` (and/or `python`) to ``None`` if you
|
You may explicitly set `platform` (and/or `python`) to ``None`` if you
|
||||||
@ -1521,10 +1518,12 @@ class DefaultProvider(EggProvider):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _register(cls):
|
def _register(cls):
|
||||||
loader_names = 'SourceFileLoader', 'SourcelessFileLoader',
|
loader_cls = getattr(
|
||||||
for name in loader_names:
|
importlib_machinery,
|
||||||
loader_cls = getattr(importlib_machinery, name, type(None))
|
'SourceFileLoader',
|
||||||
register_loader_type(loader_cls, cls)
|
type(None),
|
||||||
|
)
|
||||||
|
register_loader_type(loader_cls, cls)
|
||||||
|
|
||||||
|
|
||||||
DefaultProvider._register()
|
DefaultProvider._register()
|
||||||
@ -2286,7 +2285,7 @@ EGG_NAME = re.compile(
|
|||||||
).match
|
).match
|
||||||
|
|
||||||
|
|
||||||
class EntryPoint:
|
class EntryPoint(object):
|
||||||
"""Object representing an advertised importable object"""
|
"""Object representing an advertised importable object"""
|
||||||
|
|
||||||
def __init__(self, name, module_name, attrs=(), extras=(), dist=None):
|
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
|
return safe_version(value.strip()) or None
|
||||||
|
|
||||||
|
|
||||||
class Distribution:
|
class Distribution(object):
|
||||||
"""Wrap an actual or potential sys.path entry w/metadata"""
|
"""Wrap an actual or potential sys.path entry w/metadata"""
|
||||||
PKG_INFO = 'PKG-INFO'
|
PKG_INFO = 'PKG-INFO'
|
||||||
|
|
||||||
@ -2670,19 +2669,6 @@ class Distribution:
|
|||||||
raise AttributeError(attr)
|
raise AttributeError(attr)
|
||||||
return getattr(self._provider, 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
|
@classmethod
|
||||||
def from_filename(cls, filename, metadata=None, **kw):
|
def from_filename(cls, filename, metadata=None, **kw):
|
||||||
return cls.from_location(
|
return cls.from_location(
|
||||||
@ -3034,10 +3020,7 @@ def _bypass_ensure_directory(path):
|
|||||||
dirname, filename = split(path)
|
dirname, filename = split(path)
|
||||||
if dirname and filename and not isdir(dirname):
|
if dirname and filename and not isdir(dirname):
|
||||||
_bypass_ensure_directory(dirname)
|
_bypass_ensure_directory(dirname)
|
||||||
try:
|
mkdir(dirname, 0o755)
|
||||||
mkdir(dirname, 0o755)
|
|
||||||
except FileExistsError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def split_sections(s):
|
def split_sections(s):
|
||||||
|
@ -13,7 +13,7 @@ See <http://github.com/ActiveState/appdirs> for details and usage.
|
|||||||
# - Mac OS X: http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/index.html
|
# - 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
|
# - 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__))
|
__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):
|
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.
|
"appname" is the name of application.
|
||||||
If None, just the system directory is returned.
|
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/<AppName>',
|
returned, or '/usr/local/share/<AppName>',
|
||||||
if XDG_DATA_DIRS is not set
|
if XDG_DATA_DIRS is not set
|
||||||
|
|
||||||
Typical site data directories are:
|
Typical user data directories are:
|
||||||
Mac OS X: /Library/Application Support/<AppName>
|
Mac OS X: /Library/Application Support/<AppName>
|
||||||
Unix: /usr/local/share/<AppName> or /usr/share/<AppName>
|
Unix: /usr/local/share/<AppName> or /usr/share/<AppName>
|
||||||
Win XP: C:\Documents and Settings\All Users\Application Data\<AppAuthor>\<AppName>
|
Win XP: C:\Documents and Settings\All Users\Application Data\<AppAuthor>\<AppName>
|
||||||
@ -184,13 +184,13 @@ def user_config_dir(appname=None, appauthor=None, version=None, roaming=False):
|
|||||||
<http://technet.microsoft.com/en-us/library/cc766489(WS.10).aspx>
|
<http://technet.microsoft.com/en-us/library/cc766489(WS.10).aspx>
|
||||||
for a discussion of issues.
|
for a discussion of issues.
|
||||||
|
|
||||||
Typical user config directories are:
|
Typical user data directories are:
|
||||||
Mac OS X: same as user_data_dir
|
Mac OS X: same as user_data_dir
|
||||||
Unix: ~/.config/<AppName> # or in $XDG_CONFIG_HOME, if defined
|
Unix: ~/.config/<AppName> # or in $XDG_CONFIG_HOME, if defined
|
||||||
Win *: same as user_data_dir
|
Win *: same as user_data_dir
|
||||||
|
|
||||||
For Unix, we follow the XDG spec and support $XDG_CONFIG_HOME.
|
For Unix, we follow the XDG spec and support $XDG_CONFIG_HOME.
|
||||||
That means, by default "~/.config/<AppName>".
|
That means, by deafult "~/.config/<AppName>".
|
||||||
"""
|
"""
|
||||||
if system in ["win32", "darwin"]:
|
if system in ["win32", "darwin"]:
|
||||||
path = user_data_dir(appname, appauthor, None, roaming)
|
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):
|
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.
|
"appname" is the name of application.
|
||||||
If None, just the system directory is returned.
|
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. By default, the first item from XDG_CONFIG_DIRS is
|
||||||
returned, or '/etc/xdg/<AppName>', if XDG_CONFIG_DIRS is not set
|
returned, or '/etc/xdg/<AppName>', 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
|
Mac OS X: same as site_data_dir
|
||||||
Unix: /etc/xdg/<AppName> or $XDG_CONFIG_DIRS[i]/<AppName> for each value in
|
Unix: /etc/xdg/<AppName> or $XDG_CONFIG_DIRS[i]/<AppName> for each value in
|
||||||
$XDG_CONFIG_DIRS
|
$XDG_CONFIG_DIRS
|
||||||
@ -311,48 +311,6 @@ def user_cache_dir(appname=None, appauthor=None, version=None, opinion=True):
|
|||||||
return path
|
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 "<major>.<minor>".
|
|
||||||
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
|
|
||||||
<http://technet.microsoft.com/en-us/library/cc766489(WS.10).aspx>
|
|
||||||
for a discussion of issues.
|
|
||||||
|
|
||||||
Typical user state directories are:
|
|
||||||
Mac OS X: same as user_data_dir
|
|
||||||
Unix: ~/.local/state/<AppName> # or in $XDG_STATE_HOME, if defined
|
|
||||||
Win *: same as user_data_dir
|
|
||||||
|
|
||||||
For Unix, we follow this Debian proposal <https://wiki.debian.org/XDGBaseDirectorySpecification#state>
|
|
||||||
to extend the XDG spec and support $XDG_STATE_HOME.
|
|
||||||
|
|
||||||
That means, by default "~/.local/state/<AppName>".
|
|
||||||
"""
|
|
||||||
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):
|
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.
|
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
|
"Logs" to the base app data dir for Windows, and "log" to the
|
||||||
base cache dir for Unix. See discussion below.
|
base cache dir for Unix. See discussion below.
|
||||||
|
|
||||||
Typical user log directories are:
|
Typical user cache directories are:
|
||||||
Mac OS X: ~/Library/Logs/<AppName>
|
Mac OS X: ~/Library/Logs/<AppName>
|
||||||
Unix: ~/.cache/<AppName>/log # or under $XDG_CACHE_HOME if defined
|
Unix: ~/.cache/<AppName>/log # or under $XDG_CACHE_HOME if defined
|
||||||
Win XP: C:\Documents and Settings\<username>\Local Settings\Application Data\<AppAuthor>\<AppName>\Logs
|
Win XP: C:\Documents and Settings\<username>\Local Settings\Application Data\<AppAuthor>\<AppName>\Logs
|
||||||
@ -406,8 +364,8 @@ def user_log_dir(appname=None, appauthor=None, version=None, opinion=True):
|
|||||||
|
|
||||||
class AppDirs(object):
|
class AppDirs(object):
|
||||||
"""Convenience wrapper for getting application dirs."""
|
"""Convenience wrapper for getting application dirs."""
|
||||||
def __init__(self, appname=None, appauthor=None, version=None,
|
def __init__(self, appname, appauthor=None, version=None, roaming=False,
|
||||||
roaming=False, multipath=False):
|
multipath=False):
|
||||||
self.appname = appname
|
self.appname = appname
|
||||||
self.appauthor = appauthor
|
self.appauthor = appauthor
|
||||||
self.version = version
|
self.version = version
|
||||||
@ -439,11 +397,6 @@ class AppDirs(object):
|
|||||||
return user_cache_dir(self.appname, self.appauthor,
|
return user_cache_dir(self.appname, self.appauthor,
|
||||||
version=self.version)
|
version=self.version)
|
||||||
|
|
||||||
@property
|
|
||||||
def user_state_dir(self):
|
|
||||||
return user_state_dir(self.appname, self.appauthor,
|
|
||||||
version=self.version)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def user_log_dir(self):
|
def user_log_dir(self):
|
||||||
return user_log_dir(self.appname, self.appauthor,
|
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_*
|
registry for this guarantees us the correct answer for all CSIDL_*
|
||||||
names.
|
names.
|
||||||
"""
|
"""
|
||||||
if PY3:
|
import _winreg
|
||||||
import winreg as _winreg
|
|
||||||
else:
|
|
||||||
import _winreg
|
|
||||||
|
|
||||||
shell_folder_name = {
|
shell_folder_name = {
|
||||||
"CSIDL_APPDATA": "AppData",
|
"CSIDL_APPDATA": "AppData",
|
||||||
@ -550,7 +500,7 @@ def _get_win_folder_with_jna(csidl_name):
|
|||||||
if has_high_char:
|
if has_high_char:
|
||||||
buf = array.zeros('c', buf_size)
|
buf = array.zeros('c', buf_size)
|
||||||
kernel = win32.Kernel32.INSTANCE
|
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")
|
dir = jna.Native.toString(buf.tostring()).rstrip("\0")
|
||||||
|
|
||||||
return dir
|
return dir
|
||||||
@ -577,15 +527,9 @@ if __name__ == "__main__":
|
|||||||
appname = "MyApp"
|
appname = "MyApp"
|
||||||
appauthor = "MyCompany"
|
appauthor = "MyCompany"
|
||||||
|
|
||||||
props = ("user_data_dir",
|
props = ("user_data_dir", "site_data_dir",
|
||||||
"user_config_dir",
|
"user_config_dir", "site_config_dir",
|
||||||
"user_cache_dir",
|
"user_cache_dir", "user_log_dir")
|
||||||
"user_state_dir",
|
|
||||||
"user_log_dir",
|
|
||||||
"site_data_dir",
|
|
||||||
"site_config_dir")
|
|
||||||
|
|
||||||
print("-- app dirs %s --" % __version__)
|
|
||||||
|
|
||||||
print("-- app dirs (with optional 'version')")
|
print("-- app dirs (with optional 'version')")
|
||||||
dirs = AppDirs(appname, appauthor, version="1.0")
|
dirs = AppDirs(appname, appauthor, version="1.0")
|
||||||
|
@ -60,8 +60,8 @@ The pyparsing module handles some of the problems that are typically vexing when
|
|||||||
- embedded comments
|
- embedded comments
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__version__ = "2.2.0"
|
__version__ = "2.1.10"
|
||||||
__versionTime__ = "06 Mar 2017 02:06 UTC"
|
__versionTime__ = "07 Oct 2016 01:31 UTC"
|
||||||
__author__ = "Paul McGuire <ptmcg@users.sourceforge.net>"
|
__author__ = "Paul McGuire <ptmcg@users.sourceforge.net>"
|
||||||
|
|
||||||
import string
|
import string
|
||||||
@ -144,7 +144,7 @@ else:
|
|||||||
except UnicodeEncodeError:
|
except UnicodeEncodeError:
|
||||||
# Else encode it
|
# Else encode it
|
||||||
ret = unicode(obj).encode(sys.getdefaultencoding(), 'xmlcharrefreplace')
|
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:])
|
xmlcharref.setParseAction(lambda t: '\\u' + hex(int(t[0][2:-1]))[2:])
|
||||||
return xmlcharref.transformString(ret)
|
return xmlcharref.transformString(ret)
|
||||||
|
|
||||||
@ -809,7 +809,7 @@ class ParseResults(object):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
def getName(self):
|
def getName(self):
|
||||||
r"""
|
"""
|
||||||
Returns the results name for this token expression. Useful when several
|
Returns the results name for this token expression. Useful when several
|
||||||
different expressions might match at a particular location.
|
different expressions might match at a particular location.
|
||||||
|
|
||||||
@ -1226,7 +1226,7 @@ class ParserElement(object):
|
|||||||
|
|
||||||
def setParseAction( self, *fns, **kwargs ):
|
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)},
|
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:
|
C{fn(loc,toks)}, C{fn(toks)}, or just C{fn()}, where:
|
||||||
- s = the original string being parsed (see note below)
|
- s = the original string being parsed (see note below)
|
||||||
@ -1264,7 +1264,7 @@ class ParserElement(object):
|
|||||||
|
|
||||||
def addParseAction( self, *fns, **kwargs ):
|
def addParseAction( self, *fns, **kwargs ):
|
||||||
"""
|
"""
|
||||||
Add one or more parse actions to expression's list of parse actions. See L{I{setParseAction}<setParseAction>}.
|
Add parse action to expression's list of parse actions. See L{I{setParseAction}<setParseAction>}.
|
||||||
|
|
||||||
See examples in L{I{copy}<copy>}.
|
See examples in L{I{copy}<copy>}.
|
||||||
"""
|
"""
|
||||||
@ -1444,13 +1444,9 @@ class ParserElement(object):
|
|||||||
def clear(self):
|
def clear(self):
|
||||||
cache.clear()
|
cache.clear()
|
||||||
|
|
||||||
def cache_len(self):
|
|
||||||
return len(cache)
|
|
||||||
|
|
||||||
self.get = types.MethodType(get, self)
|
self.get = types.MethodType(get, self)
|
||||||
self.set = types.MethodType(set, self)
|
self.set = types.MethodType(set, self)
|
||||||
self.clear = types.MethodType(clear, self)
|
self.clear = types.MethodType(clear, self)
|
||||||
self.__len__ = types.MethodType(cache_len, self)
|
|
||||||
|
|
||||||
if _OrderedDict is not None:
|
if _OrderedDict is not None:
|
||||||
class _FifoCache(object):
|
class _FifoCache(object):
|
||||||
@ -1464,22 +1460,15 @@ class ParserElement(object):
|
|||||||
|
|
||||||
def set(self, key, value):
|
def set(self, key, value):
|
||||||
cache[key] = value
|
cache[key] = value
|
||||||
while len(cache) > size:
|
if len(cache) > size:
|
||||||
try:
|
cache.popitem(False)
|
||||||
cache.popitem(False)
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
cache.clear()
|
cache.clear()
|
||||||
|
|
||||||
def cache_len(self):
|
|
||||||
return len(cache)
|
|
||||||
|
|
||||||
self.get = types.MethodType(get, self)
|
self.get = types.MethodType(get, self)
|
||||||
self.set = types.MethodType(set, self)
|
self.set = types.MethodType(set, self)
|
||||||
self.clear = types.MethodType(clear, self)
|
self.clear = types.MethodType(clear, self)
|
||||||
self.__len__ = types.MethodType(cache_len, self)
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
class _FifoCache(object):
|
class _FifoCache(object):
|
||||||
@ -1494,7 +1483,7 @@ class ParserElement(object):
|
|||||||
|
|
||||||
def set(self, key, value):
|
def set(self, key, value):
|
||||||
cache[key] = value
|
cache[key] = value
|
||||||
while len(key_fifo) > size:
|
if len(cache) > size:
|
||||||
cache.pop(key_fifo.popleft(), None)
|
cache.pop(key_fifo.popleft(), None)
|
||||||
key_fifo.append(key)
|
key_fifo.append(key)
|
||||||
|
|
||||||
@ -1502,13 +1491,9 @@ class ParserElement(object):
|
|||||||
cache.clear()
|
cache.clear()
|
||||||
key_fifo.clear()
|
key_fifo.clear()
|
||||||
|
|
||||||
def cache_len(self):
|
|
||||||
return len(cache)
|
|
||||||
|
|
||||||
self.get = types.MethodType(get, self)
|
self.get = types.MethodType(get, self)
|
||||||
self.set = types.MethodType(set, self)
|
self.set = types.MethodType(set, self)
|
||||||
self.clear = types.MethodType(clear, 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
|
# 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
|
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())
|
cap_word = Word(alphas.upper(), alphas.lower())
|
||||||
|
|
||||||
print(cap_word.searchString("More than Iron, more than Lead, more than Gold I need Electricity"))
|
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::
|
prints::
|
||||||
[['More'], ['Iron'], ['Lead'], ['Gold'], ['I'], ['Electricity']]
|
['More', 'Iron', 'Lead', 'Gold', 'I']
|
||||||
['More', 'Iron', 'Lead', 'Gold', 'I', 'Electricity']
|
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
return ParseResults([ t for t,s,e in self.scanString( instring, maxMatches ) ])
|
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),
|
warnings.warn("Cannot combine element of type %s with ParserElement" % type(other),
|
||||||
SyntaxWarning, stacklevel=2)
|
SyntaxWarning, stacklevel=2)
|
||||||
return None
|
return None
|
||||||
return self + And._ErrorStop() + other
|
return And( [ self, And._ErrorStop(), other ] )
|
||||||
|
|
||||||
def __rsub__(self, other ):
|
def __rsub__(self, other ):
|
||||||
"""
|
"""
|
||||||
@ -2741,7 +2722,7 @@ class Word(Token):
|
|||||||
|
|
||||||
|
|
||||||
class Regex(Token):
|
class Regex(Token):
|
||||||
r"""
|
"""
|
||||||
Token for matching strings that match a given regular expression.
|
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.
|
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<name>...)}), these will be preserved as
|
If the given regex contains named groups (defined using C{(?P<name>...)}), these will be preserved as
|
||||||
@ -2930,7 +2911,7 @@ class QuotedString(Token):
|
|||||||
|
|
||||||
# replace escaped characters
|
# replace escaped characters
|
||||||
if self.escChar:
|
if self.escChar:
|
||||||
ret = re.sub(self.escCharReplacePattern, r"\g<1>", ret)
|
ret = re.sub(self.escCharReplacePattern,"\g<1>",ret)
|
||||||
|
|
||||||
# replace escaped quotes
|
# replace escaped quotes
|
||||||
if self.escQuote:
|
if self.escQuote:
|
||||||
@ -5039,9 +5020,7 @@ def infixNotation( baseExpr, opList, lpar=Suppress('('), rpar=Suppress(')') ):
|
|||||||
constants C{opAssoc.RIGHT} and C{opAssoc.LEFT}.
|
constants C{opAssoc.RIGHT} and C{opAssoc.LEFT}.
|
||||||
- parseAction is the parse action to be associated with
|
- parseAction is the parse action to be associated with
|
||||||
expressions matching this operator expression (the
|
expressions matching this operator expression (the
|
||||||
parse action tuple member may be omitted); if the parse action
|
parse action tuple member may be omitted)
|
||||||
is passed a tuple or list of functions, this is equivalent to
|
|
||||||
calling C{setParseAction(*fn)} (L{ParserElement.setParseAction})
|
|
||||||
- lpar - expression for matching left-parentheses (default=C{Suppress('(')})
|
- lpar - expression for matching left-parentheses (default=C{Suppress('(')})
|
||||||
- rpar - expression for matching right-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:
|
else:
|
||||||
raise ValueError("operator must indicate right or left associativity")
|
raise ValueError("operator must indicate right or left associativity")
|
||||||
if pa:
|
if pa:
|
||||||
if isinstance(pa, (tuple, list)):
|
matchExpr.setParseAction( pa )
|
||||||
matchExpr.setParseAction(*pa)
|
|
||||||
else:
|
|
||||||
matchExpr.setParseAction(pa)
|
|
||||||
thisExpr <<= ( matchExpr.setName(termName) | lastExpr )
|
thisExpr <<= ( matchExpr.setName(termName) | lastExpr )
|
||||||
lastExpr = thisExpr
|
lastExpr = thisExpr
|
||||||
ret <<= lastExpr
|
ret <<= lastExpr
|
||||||
|
@ -48,7 +48,7 @@ class VendorImporter:
|
|||||||
# on later Python versions to cause relative imports
|
# on later Python versions to cause relative imports
|
||||||
# in the vendor package to resolve the same modules
|
# in the vendor package to resolve the same modules
|
||||||
# as those going through this importer.
|
# as those going through this importer.
|
||||||
if prefix and sys.version_info > (3, 3):
|
if sys.version_info > (3, 3):
|
||||||
del sys.modules[extant]
|
del sys.modules[extant]
|
||||||
return mod
|
return mod
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
@ -2,8 +2,6 @@ import os
|
|||||||
import errno
|
import errno
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from .extern import six
|
|
||||||
|
|
||||||
|
|
||||||
def _makedirs_31(path, exist_ok=False):
|
def _makedirs_31(path, exist_ok=False):
|
||||||
try:
|
try:
|
||||||
@ -17,7 +15,8 @@ def _makedirs_31(path, exist_ok=False):
|
|||||||
# and exists_ok considerations are disentangled.
|
# and exists_ok considerations are disentangled.
|
||||||
# See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663
|
# See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663
|
||||||
needs_makedirs = (
|
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)
|
(3, 4) <= sys.version_info < (3, 4, 1)
|
||||||
)
|
)
|
||||||
makedirs = _makedirs_31 if needs_makedirs else os.makedirs
|
makedirs = _makedirs_31 if needs_makedirs else os.makedirs
|
||||||
|
@ -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
|
||||||
|
<https://packaging.python.org/installing/>`_ in the Python Packaging
|
||||||
|
User's Guide for instructions on installing, upgrading, and uninstalling
|
||||||
|
Setuptools.
|
||||||
|
|
||||||
|
The project is `maintained at GitHub <https://github.com/pypa/setuptools>`_.
|
||||||
|
|
||||||
|
Questions and comments should be directed to the `distutils-sig
|
||||||
|
mailing list <http://mail.python.org/pipermail/distutils-sig/>`_.
|
||||||
|
Bug reports and especially tested patches may be
|
||||||
|
submitted directly to the `bug tracker
|
||||||
|
<https://github.com/pypa/setuptools/issues>`_.
|
||||||
|
|
||||||
|
|
||||||
|
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 <https://www.pypa.io/en/latest/code-of-conduct/>`_.
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
pip
|
@ -0,0 +1,19 @@
|
|||||||
|
Copyright (C) 2016 Jason R Coombs <jaraco@jaraco.com>
|
||||||
|
|
||||||
|
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.
|
@ -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
|
||||||
|
<https://packaging.python.org/installing/>`_ in the Python Packaging
|
||||||
|
User's Guide for instructions on installing, upgrading, and uninstalling
|
||||||
|
Setuptools.
|
||||||
|
|
||||||
|
The project is `maintained at GitHub <https://github.com/pypa/setuptools>`_.
|
||||||
|
|
||||||
|
Questions and comments should be directed to the `distutils-sig
|
||||||
|
mailing list <http://mail.python.org/pipermail/distutils-sig/>`_.
|
||||||
|
Bug reports and especially tested patches may be
|
||||||
|
submitted directly to the `bug tracker
|
||||||
|
<https://github.com/pypa/setuptools/issues>`_.
|
||||||
|
|
||||||
|
|
||||||
|
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 <https://www.pypa.io/en/latest/code-of-conduct/>`_.
|
||||||
|
|
||||||
|
|
@ -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,,
|
@ -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
|
||||||
|
|
@ -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
|
@ -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
|
||||||
|
|
@ -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"}
|
@ -0,0 +1,3 @@
|
|||||||
|
easy_install
|
||||||
|
pkg_resources
|
||||||
|
setuptools
|
@ -0,0 +1 @@
|
|||||||
|
|
@ -1,14 +1,12 @@
|
|||||||
"""Extensions to the 'distutils' for large or complex distributions"""
|
"""Extensions to the 'distutils' for large or complex distributions"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
|
||||||
import functools
|
import functools
|
||||||
import distutils.core
|
import distutils.core
|
||||||
import distutils.filelist
|
import distutils.filelist
|
||||||
from distutils.util import convert_path
|
from distutils.util import convert_path
|
||||||
from fnmatch import fnmatchcase
|
from fnmatch import fnmatchcase
|
||||||
|
|
||||||
from setuptools.extern.six import PY3
|
|
||||||
from setuptools.extern.six.moves import filter, map
|
from setuptools.extern.six.moves import filter, map
|
||||||
|
|
||||||
import setuptools.version
|
import setuptools.version
|
||||||
@ -17,17 +15,11 @@ from setuptools.dist import Distribution, Feature
|
|||||||
from setuptools.depends import Require
|
from setuptools.depends import Require
|
||||||
from . import monkey
|
from . import monkey
|
||||||
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'setup', 'Distribution', 'Feature', 'Command', 'Extension', 'Require',
|
'setup', 'Distribution', 'Feature', 'Command', 'Extension', 'Require',
|
||||||
'find_packages'
|
'find_packages',
|
||||||
]
|
]
|
||||||
|
|
||||||
if PY3:
|
|
||||||
__all__.append('find_namespace_packages')
|
|
||||||
|
|
||||||
__version__ = setuptools.version.__version__
|
__version__ = setuptools.version.__version__
|
||||||
|
|
||||||
bootstrap_install_from = None
|
bootstrap_install_from = None
|
||||||
@ -39,7 +31,7 @@ run_2to3_on_doctests = True
|
|||||||
lib2to3_fixer_packages = ['lib2to3.fixes']
|
lib2to3_fixer_packages = ['lib2to3.fixes']
|
||||||
|
|
||||||
|
|
||||||
class PackageFinder:
|
class PackageFinder(object):
|
||||||
"""
|
"""
|
||||||
Generate a list of all Python packages found within a directory
|
Generate a list of all Python packages found within a directory
|
||||||
"""
|
"""
|
||||||
@ -117,9 +109,6 @@ class PEP420PackageFinder(PackageFinder):
|
|||||||
|
|
||||||
find_packages = PackageFinder.find
|
find_packages = PackageFinder.find
|
||||||
|
|
||||||
if PY3:
|
|
||||||
find_namespace_packages = PEP420PackageFinder.find
|
|
||||||
|
|
||||||
|
|
||||||
def _install_setup_requires(attrs):
|
def _install_setup_requires(attrs):
|
||||||
# Note: do not use `setuptools.Distribution` directly, as
|
# Note: do not use `setuptools.Distribution` directly, as
|
||||||
|
@ -60,8 +60,8 @@ The pyparsing module handles some of the problems that are typically vexing when
|
|||||||
- embedded comments
|
- embedded comments
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__version__ = "2.2.0"
|
__version__ = "2.1.10"
|
||||||
__versionTime__ = "06 Mar 2017 02:06 UTC"
|
__versionTime__ = "07 Oct 2016 01:31 UTC"
|
||||||
__author__ = "Paul McGuire <ptmcg@users.sourceforge.net>"
|
__author__ = "Paul McGuire <ptmcg@users.sourceforge.net>"
|
||||||
|
|
||||||
import string
|
import string
|
||||||
@ -144,7 +144,7 @@ else:
|
|||||||
except UnicodeEncodeError:
|
except UnicodeEncodeError:
|
||||||
# Else encode it
|
# Else encode it
|
||||||
ret = unicode(obj).encode(sys.getdefaultencoding(), 'xmlcharrefreplace')
|
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:])
|
xmlcharref.setParseAction(lambda t: '\\u' + hex(int(t[0][2:-1]))[2:])
|
||||||
return xmlcharref.transformString(ret)
|
return xmlcharref.transformString(ret)
|
||||||
|
|
||||||
@ -809,7 +809,7 @@ class ParseResults(object):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
def getName(self):
|
def getName(self):
|
||||||
r"""
|
"""
|
||||||
Returns the results name for this token expression. Useful when several
|
Returns the results name for this token expression. Useful when several
|
||||||
different expressions might match at a particular location.
|
different expressions might match at a particular location.
|
||||||
|
|
||||||
@ -1226,7 +1226,7 @@ class ParserElement(object):
|
|||||||
|
|
||||||
def setParseAction( self, *fns, **kwargs ):
|
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)},
|
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:
|
C{fn(loc,toks)}, C{fn(toks)}, or just C{fn()}, where:
|
||||||
- s = the original string being parsed (see note below)
|
- s = the original string being parsed (see note below)
|
||||||
@ -1264,7 +1264,7 @@ class ParserElement(object):
|
|||||||
|
|
||||||
def addParseAction( self, *fns, **kwargs ):
|
def addParseAction( self, *fns, **kwargs ):
|
||||||
"""
|
"""
|
||||||
Add one or more parse actions to expression's list of parse actions. See L{I{setParseAction}<setParseAction>}.
|
Add parse action to expression's list of parse actions. See L{I{setParseAction}<setParseAction>}.
|
||||||
|
|
||||||
See examples in L{I{copy}<copy>}.
|
See examples in L{I{copy}<copy>}.
|
||||||
"""
|
"""
|
||||||
@ -1444,13 +1444,9 @@ class ParserElement(object):
|
|||||||
def clear(self):
|
def clear(self):
|
||||||
cache.clear()
|
cache.clear()
|
||||||
|
|
||||||
def cache_len(self):
|
|
||||||
return len(cache)
|
|
||||||
|
|
||||||
self.get = types.MethodType(get, self)
|
self.get = types.MethodType(get, self)
|
||||||
self.set = types.MethodType(set, self)
|
self.set = types.MethodType(set, self)
|
||||||
self.clear = types.MethodType(clear, self)
|
self.clear = types.MethodType(clear, self)
|
||||||
self.__len__ = types.MethodType(cache_len, self)
|
|
||||||
|
|
||||||
if _OrderedDict is not None:
|
if _OrderedDict is not None:
|
||||||
class _FifoCache(object):
|
class _FifoCache(object):
|
||||||
@ -1464,22 +1460,15 @@ class ParserElement(object):
|
|||||||
|
|
||||||
def set(self, key, value):
|
def set(self, key, value):
|
||||||
cache[key] = value
|
cache[key] = value
|
||||||
while len(cache) > size:
|
if len(cache) > size:
|
||||||
try:
|
cache.popitem(False)
|
||||||
cache.popitem(False)
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
cache.clear()
|
cache.clear()
|
||||||
|
|
||||||
def cache_len(self):
|
|
||||||
return len(cache)
|
|
||||||
|
|
||||||
self.get = types.MethodType(get, self)
|
self.get = types.MethodType(get, self)
|
||||||
self.set = types.MethodType(set, self)
|
self.set = types.MethodType(set, self)
|
||||||
self.clear = types.MethodType(clear, self)
|
self.clear = types.MethodType(clear, self)
|
||||||
self.__len__ = types.MethodType(cache_len, self)
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
class _FifoCache(object):
|
class _FifoCache(object):
|
||||||
@ -1494,7 +1483,7 @@ class ParserElement(object):
|
|||||||
|
|
||||||
def set(self, key, value):
|
def set(self, key, value):
|
||||||
cache[key] = value
|
cache[key] = value
|
||||||
while len(key_fifo) > size:
|
if len(cache) > size:
|
||||||
cache.pop(key_fifo.popleft(), None)
|
cache.pop(key_fifo.popleft(), None)
|
||||||
key_fifo.append(key)
|
key_fifo.append(key)
|
||||||
|
|
||||||
@ -1502,13 +1491,9 @@ class ParserElement(object):
|
|||||||
cache.clear()
|
cache.clear()
|
||||||
key_fifo.clear()
|
key_fifo.clear()
|
||||||
|
|
||||||
def cache_len(self):
|
|
||||||
return len(cache)
|
|
||||||
|
|
||||||
self.get = types.MethodType(get, self)
|
self.get = types.MethodType(get, self)
|
||||||
self.set = types.MethodType(set, self)
|
self.set = types.MethodType(set, self)
|
||||||
self.clear = types.MethodType(clear, 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
|
# 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
|
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())
|
cap_word = Word(alphas.upper(), alphas.lower())
|
||||||
|
|
||||||
print(cap_word.searchString("More than Iron, more than Lead, more than Gold I need Electricity"))
|
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::
|
prints::
|
||||||
[['More'], ['Iron'], ['Lead'], ['Gold'], ['I'], ['Electricity']]
|
['More', 'Iron', 'Lead', 'Gold', 'I']
|
||||||
['More', 'Iron', 'Lead', 'Gold', 'I', 'Electricity']
|
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
return ParseResults([ t for t,s,e in self.scanString( instring, maxMatches ) ])
|
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),
|
warnings.warn("Cannot combine element of type %s with ParserElement" % type(other),
|
||||||
SyntaxWarning, stacklevel=2)
|
SyntaxWarning, stacklevel=2)
|
||||||
return None
|
return None
|
||||||
return self + And._ErrorStop() + other
|
return And( [ self, And._ErrorStop(), other ] )
|
||||||
|
|
||||||
def __rsub__(self, other ):
|
def __rsub__(self, other ):
|
||||||
"""
|
"""
|
||||||
@ -2741,7 +2722,7 @@ class Word(Token):
|
|||||||
|
|
||||||
|
|
||||||
class Regex(Token):
|
class Regex(Token):
|
||||||
r"""
|
"""
|
||||||
Token for matching strings that match a given regular expression.
|
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.
|
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<name>...)}), these will be preserved as
|
If the given regex contains named groups (defined using C{(?P<name>...)}), these will be preserved as
|
||||||
@ -2930,7 +2911,7 @@ class QuotedString(Token):
|
|||||||
|
|
||||||
# replace escaped characters
|
# replace escaped characters
|
||||||
if self.escChar:
|
if self.escChar:
|
||||||
ret = re.sub(self.escCharReplacePattern, r"\g<1>", ret)
|
ret = re.sub(self.escCharReplacePattern,"\g<1>",ret)
|
||||||
|
|
||||||
# replace escaped quotes
|
# replace escaped quotes
|
||||||
if self.escQuote:
|
if self.escQuote:
|
||||||
@ -5039,9 +5020,7 @@ def infixNotation( baseExpr, opList, lpar=Suppress('('), rpar=Suppress(')') ):
|
|||||||
constants C{opAssoc.RIGHT} and C{opAssoc.LEFT}.
|
constants C{opAssoc.RIGHT} and C{opAssoc.LEFT}.
|
||||||
- parseAction is the parse action to be associated with
|
- parseAction is the parse action to be associated with
|
||||||
expressions matching this operator expression (the
|
expressions matching this operator expression (the
|
||||||
parse action tuple member may be omitted); if the parse action
|
parse action tuple member may be omitted)
|
||||||
is passed a tuple or list of functions, this is equivalent to
|
|
||||||
calling C{setParseAction(*fn)} (L{ParserElement.setParseAction})
|
|
||||||
- lpar - expression for matching left-parentheses (default=C{Suppress('(')})
|
- lpar - expression for matching left-parentheses (default=C{Suppress('(')})
|
||||||
- rpar - expression for matching right-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:
|
else:
|
||||||
raise ValueError("operator must indicate right or left associativity")
|
raise ValueError("operator must indicate right or left associativity")
|
||||||
if pa:
|
if pa:
|
||||||
if isinstance(pa, (tuple, list)):
|
matchExpr.setParseAction( pa )
|
||||||
matchExpr.setParseAction(*pa)
|
|
||||||
else:
|
|
||||||
matchExpr.setParseAction(pa)
|
|
||||||
thisExpr <<= ( matchExpr.setName(termName) | lastExpr )
|
thisExpr <<= ( matchExpr.setName(termName) | lastExpr )
|
||||||
lastExpr = thisExpr
|
lastExpr = thisExpr
|
||||||
ret <<= lastExpr
|
ret <<= lastExpr
|
||||||
|
@ -61,19 +61,6 @@ class Distribution(setuptools.dist.Distribution):
|
|||||||
distutils.core.Distribution = orig
|
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'):
|
def _run_setup(setup_script='setup.py'):
|
||||||
# Note that we can reuse our build directory between calls
|
# Note that we can reuse our build directory between calls
|
||||||
# Correctness comes first, then optimization later
|
# 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):
|
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()
|
_run_setup()
|
||||||
|
|
||||||
dist_info_directory = metadata_directory
|
dist_info_directory = metadata_directory
|
||||||
|
@ -411,7 +411,7 @@ def scan_module(egg_dir, base, name, stubs):
|
|||||||
return True # Extension module
|
return True # Extension module
|
||||||
pkg = base[len(egg_dir) + 1:].replace(os.sep, '.')
|
pkg = base[len(egg_dir) + 1:].replace(os.sep, '.')
|
||||||
module = pkg + (pkg and '.' or '') + os.path.splitext(name)[0]
|
module = pkg + (pkg and '.' or '') + os.path.splitext(name)[0]
|
||||||
if six.PY2:
|
if sys.version_info < (3, 3):
|
||||||
skip = 8 # skip magic & date
|
skip = 8 # skip magic & date
|
||||||
elif sys.version_info < (3, 7):
|
elif sys.version_info < (3, 7):
|
||||||
skip = 12 # skip magic & date & file size
|
skip = 12 # skip magic & date & file size
|
||||||
|
@ -112,7 +112,7 @@ class build_ext(_build_ext):
|
|||||||
and get_abi3_suffix()
|
and get_abi3_suffix()
|
||||||
)
|
)
|
||||||
if use_abi3:
|
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[:-len(so_ext)]
|
||||||
filename = filename + get_abi3_suffix()
|
filename = filename + get_abi3_suffix()
|
||||||
if isinstance(ext, Library):
|
if isinstance(ext, Library):
|
||||||
@ -319,3 +319,13 @@ else:
|
|||||||
self.create_static_lib(
|
self.create_static_lib(
|
||||||
objects, basename, output_dir, debug, target_lang
|
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)
|
||||||
|
@ -12,8 +12,6 @@ from setuptools.command.easy_install import easy_install
|
|||||||
from setuptools import namespaces
|
from setuptools import namespaces
|
||||||
import setuptools
|
import setuptools
|
||||||
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
|
|
||||||
class develop(namespaces.DevelopInstaller, easy_install):
|
class develop(namespaces.DevelopInstaller, easy_install):
|
||||||
"""Set up package for development"""
|
"""Set up package for development"""
|
||||||
@ -194,7 +192,7 @@ class develop(namespaces.DevelopInstaller, easy_install):
|
|||||||
return easy_install.install_wrapper_scripts(self, dist)
|
return easy_install.install_wrapper_scripts(self, dist)
|
||||||
|
|
||||||
|
|
||||||
class VersionlessRequirement:
|
class VersionlessRequirement(object):
|
||||||
"""
|
"""
|
||||||
Adapt a pkg_resources.Distribution to simply return the project
|
Adapt a pkg_resources.Distribution to simply return the project
|
||||||
name as the 'requirement' so that scripts will work across
|
name as the 'requirement' so that scripts will work across
|
||||||
|
@ -40,13 +40,12 @@ import subprocess
|
|||||||
import shlex
|
import shlex
|
||||||
import io
|
import io
|
||||||
|
|
||||||
from sysconfig import get_config_vars, get_path
|
|
||||||
|
|
||||||
from setuptools.extern import six
|
from setuptools.extern import six
|
||||||
from setuptools.extern.six.moves import configparser, map
|
from setuptools.extern.six.moves import configparser, map
|
||||||
|
|
||||||
from setuptools import Command
|
from setuptools import Command
|
||||||
from setuptools.sandbox import run_setup
|
from setuptools.sandbox import run_setup
|
||||||
|
from setuptools.py31compat import get_path, get_config_vars
|
||||||
from setuptools.py27compat import rmtree_safe
|
from setuptools.py27compat import rmtree_safe
|
||||||
from setuptools.command import setopt
|
from setuptools.command import setopt
|
||||||
from setuptools.archive_util import unpack_archive
|
from setuptools.archive_util import unpack_archive
|
||||||
@ -63,8 +62,6 @@ from pkg_resources import (
|
|||||||
)
|
)
|
||||||
import pkg_resources.py31compat
|
import pkg_resources.py31compat
|
||||||
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
# Turn on PEP440Warnings
|
# Turn on PEP440Warnings
|
||||||
warnings.filterwarnings("default", category=pkg_resources.PEP440Warning)
|
warnings.filterwarnings("default", category=pkg_resources.PEP440Warning)
|
||||||
|
|
||||||
@ -96,7 +93,7 @@ def samefile(p1, p2):
|
|||||||
|
|
||||||
if six.PY2:
|
if six.PY2:
|
||||||
|
|
||||||
def _to_bytes(s):
|
def _to_ascii(s):
|
||||||
return s
|
return s
|
||||||
|
|
||||||
def isascii(s):
|
def isascii(s):
|
||||||
@ -107,8 +104,8 @@ if six.PY2:
|
|||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
|
||||||
def _to_bytes(s):
|
def _to_ascii(s):
|
||||||
return s.encode('utf8')
|
return s.encode('ascii')
|
||||||
|
|
||||||
def isascii(s):
|
def isascii(s):
|
||||||
try:
|
try:
|
||||||
@ -322,7 +319,7 @@ class easy_install(Command):
|
|||||||
self.all_site_dirs.append(normalize_path(d))
|
self.all_site_dirs.append(normalize_path(d))
|
||||||
if not self.editable:
|
if not self.editable:
|
||||||
self.check_site_dir()
|
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[:]
|
self.shadow_path = self.all_site_dirs[:]
|
||||||
for path_item in self.install_dir, normalize_path(self.script_dir):
|
for path_item in self.install_dir, normalize_path(self.script_dir):
|
||||||
if path_item not in self.shadow_path:
|
if path_item not in self.shadow_path:
|
||||||
@ -805,7 +802,7 @@ class easy_install(Command):
|
|||||||
if is_script:
|
if is_script:
|
||||||
body = self._load_template(dev_path) % locals()
|
body = self._load_template(dev_path) % locals()
|
||||||
script_text = ScriptWriter.get_header(script_text) + body
|
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
|
@staticmethod
|
||||||
def _load_template(dev_path):
|
def _load_template(dev_path):
|
||||||
@ -2052,7 +2049,7 @@ class WindowsCommandSpec(CommandSpec):
|
|||||||
split_args = dict(posix=False)
|
split_args = dict(posix=False)
|
||||||
|
|
||||||
|
|
||||||
class ScriptWriter:
|
class ScriptWriter(object):
|
||||||
"""
|
"""
|
||||||
Encapsulates behavior around writing entry point scripts for console and
|
Encapsulates behavior around writing entry point scripts for console and
|
||||||
gui apps.
|
gui apps.
|
||||||
|
@ -116,33 +116,7 @@ def translate_pattern(glob):
|
|||||||
return re.compile(pat, flags=re.MULTILINE|re.DOTALL)
|
return re.compile(pat, flags=re.MULTILINE|re.DOTALL)
|
||||||
|
|
||||||
|
|
||||||
class InfoCommon:
|
class egg_info(Command):
|
||||||
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):
|
|
||||||
description = "create a distribution's .egg-info directory"
|
description = "create a distribution's .egg-info directory"
|
||||||
|
|
||||||
user_options = [
|
user_options = [
|
||||||
@ -159,11 +133,14 @@ class egg_info(InfoCommon, Command):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def initialize_options(self):
|
def initialize_options(self):
|
||||||
self.egg_base = None
|
|
||||||
self.egg_name = None
|
self.egg_name = None
|
||||||
self.egg_info = None
|
|
||||||
self.egg_version = 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.broken_egg_info = False
|
||||||
|
self.vtags = None
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
# allow the 'tag_svn_revision' to be detected and
|
# 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))
|
edit_config(filename, dict(egg_info=egg_info))
|
||||||
|
|
||||||
def finalize_options(self):
|
def finalize_options(self):
|
||||||
# Note: we need to capture the current value returned
|
self.egg_name = safe_name(self.distribution.get_name())
|
||||||
# by `self.tagged_version()`, so we can later update
|
self.vtags = self.tags()
|
||||||
# `self.distribution.metadata.version` without
|
|
||||||
# repercussions.
|
|
||||||
self.egg_name = self.name
|
|
||||||
self.egg_version = self.tagged_version()
|
self.egg_version = self.tagged_version()
|
||||||
|
|
||||||
parsed_version = parse_version(self.egg_version)
|
parsed_version = parse_version(self.egg_version)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -279,6 +254,14 @@ class egg_info(InfoCommon, Command):
|
|||||||
if not self.dry_run:
|
if not self.dry_run:
|
||||||
os.unlink(filename)
|
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):
|
def run(self):
|
||||||
self.mkpath(self.egg_info)
|
self.mkpath(self.egg_info)
|
||||||
installer = self.distribution.fetch_build_egg
|
installer = self.distribution.fetch_build_egg
|
||||||
@ -294,6 +277,14 @@ class egg_info(InfoCommon, Command):
|
|||||||
|
|
||||||
self.find_sources()
|
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):
|
def find_sources(self):
|
||||||
"""Generate SOURCES.txt manifest file"""
|
"""Generate SOURCES.txt manifest file"""
|
||||||
manifest_filename = os.path.join(self.egg_info, "SOURCES.txt")
|
manifest_filename = os.path.join(self.egg_info, "SOURCES.txt")
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
from distutils import log
|
|
||||||
import distutils.command.register as orig
|
import distutils.command.register as orig
|
||||||
|
|
||||||
|
|
||||||
@ -6,13 +5,6 @@ class register(orig.register):
|
|||||||
__doc__ = orig.register.__doc__
|
__doc__ = orig.register.__doc__
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
try:
|
# Make sure that we are using valid current name/version info
|
||||||
# Make sure that we are using valid current name/version info
|
self.run_command('egg_info')
|
||||||
self.run_command('egg_info')
|
orig.register.run(self)
|
||||||
orig.register.run(self)
|
|
||||||
finally:
|
|
||||||
self.announce(
|
|
||||||
"WARNING: Registering is deprecated, use twine to "
|
|
||||||
"upload instead (https://pypi.org/p/twine/)",
|
|
||||||
log.WARN
|
|
||||||
)
|
|
||||||
|
@ -16,8 +16,6 @@ from pkg_resources import (resource_listdir, resource_exists, normalize_path,
|
|||||||
add_activation_listener, require, EntryPoint)
|
add_activation_listener, require, EntryPoint)
|
||||||
from setuptools import Command
|
from setuptools import Command
|
||||||
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
|
|
||||||
class ScanningLoader(TestLoader):
|
class ScanningLoader(TestLoader):
|
||||||
|
|
||||||
@ -60,7 +58,7 @@ class ScanningLoader(TestLoader):
|
|||||||
|
|
||||||
|
|
||||||
# adapted from jaraco.classes.properties:NonDataProperty
|
# adapted from jaraco.classes.properties:NonDataProperty
|
||||||
class NonDataProperty:
|
class NonDataProperty(object):
|
||||||
def __init__(self, fget):
|
def __init__(self, fget):
|
||||||
self.fget = fget
|
self.fget = fget
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import getpass
|
import getpass
|
||||||
from distutils import log
|
|
||||||
from distutils.command import upload as orig
|
from distutils.command import upload as orig
|
||||||
|
|
||||||
|
|
||||||
@ -9,16 +8,6 @@ class upload(orig.upload):
|
|||||||
in a variety of different ways.
|
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):
|
def finalize_options(self):
|
||||||
orig.upload.finalize_options(self)
|
orig.upload.finalize_options(self)
|
||||||
self.username = (
|
self.username = (
|
||||||
|
@ -7,11 +7,7 @@ from functools import partial
|
|||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
|
|
||||||
from distutils.errors import DistutilsOptionError, DistutilsFileError
|
from distutils.errors import DistutilsOptionError, DistutilsFileError
|
||||||
from setuptools.extern.packaging.version import LegacyVersion, parse
|
from setuptools.extern.six import string_types
|
||||||
from setuptools.extern.six import string_types, PY3
|
|
||||||
|
|
||||||
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
|
|
||||||
def read_configuration(
|
def read_configuration(
|
||||||
@ -105,18 +101,18 @@ def parse_configuration(
|
|||||||
If False exceptions are propagated as expected.
|
If False exceptions are propagated as expected.
|
||||||
:rtype: list
|
:rtype: list
|
||||||
"""
|
"""
|
||||||
|
meta = ConfigMetadataHandler(
|
||||||
|
distribution.metadata, command_options, ignore_option_errors)
|
||||||
|
meta.parse()
|
||||||
|
|
||||||
options = ConfigOptionsHandler(
|
options = ConfigOptionsHandler(
|
||||||
distribution, command_options, ignore_option_errors)
|
distribution, command_options, ignore_option_errors)
|
||||||
options.parse()
|
options.parse()
|
||||||
|
|
||||||
meta = ConfigMetadataHandler(
|
|
||||||
distribution.metadata, command_options, ignore_option_errors, distribution.package_dir)
|
|
||||||
meta.parse()
|
|
||||||
|
|
||||||
return meta, options
|
return meta, options
|
||||||
|
|
||||||
|
|
||||||
class ConfigHandler:
|
class ConfigHandler(object):
|
||||||
"""Handles metadata supplied in configuration files."""
|
"""Handles metadata supplied in configuration files."""
|
||||||
|
|
||||||
section_prefix = None
|
section_prefix = None
|
||||||
@ -284,7 +280,7 @@ class ConfigHandler:
|
|||||||
return f.read()
|
return f.read()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _parse_attr(cls, value, package_dir=None):
|
def _parse_attr(cls, value):
|
||||||
"""Represents value as a module attribute.
|
"""Represents value as a module attribute.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
@ -304,21 +300,7 @@ class ConfigHandler:
|
|||||||
module_name = '.'.join(attrs_path)
|
module_name = '.'.join(attrs_path)
|
||||||
module_name = module_name or '__init__'
|
module_name = module_name or '__init__'
|
||||||
|
|
||||||
parent_path = os.getcwd()
|
sys.path.insert(0, 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)
|
|
||||||
try:
|
try:
|
||||||
module = import_module(module_name)
|
module = import_module(module_name)
|
||||||
value = getattr(module, attr_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
|
@property
|
||||||
def parsers(self):
|
def parsers(self):
|
||||||
"""Metadata item name to parser function mapping."""
|
"""Metadata item name to parser function mapping."""
|
||||||
@ -451,19 +427,7 @@ class ConfigMetadataHandler(ConfigHandler):
|
|||||||
:rtype: str
|
:rtype: str
|
||||||
|
|
||||||
"""
|
"""
|
||||||
version = self._parse_file(value)
|
version = self._parse_attr(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)
|
|
||||||
|
|
||||||
if callable(version):
|
if callable(version):
|
||||||
version = version()
|
version = version()
|
||||||
@ -515,24 +479,16 @@ class ConfigOptionsHandler(ConfigHandler):
|
|||||||
:param value:
|
:param value:
|
||||||
:rtype: list
|
:rtype: list
|
||||||
"""
|
"""
|
||||||
find_directives = ['find:', 'find_namespace:']
|
find_directive = 'find:'
|
||||||
trimmed_value = value.strip()
|
|
||||||
|
|
||||||
if not trimmed_value in find_directives:
|
if not value.startswith(find_directive):
|
||||||
return self._parse_list(value)
|
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.
|
# Read function arguments from a dedicated section.
|
||||||
find_kwargs = self.parse_section_packages__find(
|
find_kwargs = self.parse_section_packages__find(
|
||||||
self.sections.get('packages.find', {}))
|
self.sections.get('packages.find', {}))
|
||||||
|
|
||||||
if findns:
|
from setuptools import find_packages
|
||||||
from setuptools import find_namespace_packages as find_packages
|
|
||||||
else:
|
|
||||||
from setuptools import find_packages
|
|
||||||
|
|
||||||
return find_packages(**find_kwargs)
|
return find_packages(**find_kwargs)
|
||||||
|
|
||||||
|
@ -123,6 +123,15 @@ def write_pkg_file(self, file):
|
|||||||
file.write('Provides-Extra: %s\n' % extra)
|
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
|
sequence = tuple, list
|
||||||
|
|
||||||
|
|
||||||
@ -328,12 +337,6 @@ class Distribution(Distribution_parse_config_files, _Distribution):
|
|||||||
distribution for the included and excluded features.
|
distribution for the included and excluded features.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
_DISTUTILS_UNSUPPORTED_METADATA = {
|
|
||||||
'long_description_content_type': None,
|
|
||||||
'project_urls': dict,
|
|
||||||
'provides_extras': set,
|
|
||||||
}
|
|
||||||
|
|
||||||
_patched_dist = None
|
_patched_dist = None
|
||||||
|
|
||||||
def patch_missing_pkg_info(self, attrs):
|
def patch_missing_pkg_info(self, attrs):
|
||||||
@ -359,29 +362,25 @@ class Distribution(Distribution_parse_config_files, _Distribution):
|
|||||||
self.require_features = []
|
self.require_features = []
|
||||||
self.features = {}
|
self.features = {}
|
||||||
self.dist_files = []
|
self.dist_files = []
|
||||||
# Filter-out setuptools' specific options.
|
|
||||||
self.src_root = attrs.pop("src_root", None)
|
self.src_root = attrs.pop("src_root", None)
|
||||||
self.patch_missing_pkg_info(attrs)
|
self.patch_missing_pkg_info(attrs)
|
||||||
|
self.project_urls = attrs.get('project_urls', {})
|
||||||
self.dependency_links = attrs.pop('dependency_links', [])
|
self.dependency_links = attrs.pop('dependency_links', [])
|
||||||
self.setup_requires = attrs.pop('setup_requires', [])
|
self.setup_requires = attrs.pop('setup_requires', [])
|
||||||
for ep in pkg_resources.iter_entry_points('distutils.setup_keywords'):
|
for ep in pkg_resources.iter_entry_points('distutils.setup_keywords'):
|
||||||
vars(self).setdefault(ep.name, None)
|
vars(self).setdefault(ep.name, None)
|
||||||
_Distribution.__init__(self, {
|
_Distribution.__init__(self, attrs)
|
||||||
k: v for k, v in attrs.items()
|
|
||||||
if k not in self._DISTUTILS_UNSUPPORTED_METADATA
|
|
||||||
})
|
|
||||||
|
|
||||||
# Fill-in missing metadata fields not supported by distutils.
|
# The project_urls attribute may not be supported in distutils, so
|
||||||
# Note some fields may have been set by other tools (e.g. pbr)
|
# prime it here from our value if not automatically set
|
||||||
# above; they are taken preferrentially to setup() arguments
|
self.metadata.project_urls = getattr(
|
||||||
for option, default in self._DISTUTILS_UNSUPPORTED_METADATA.items():
|
self.metadata, 'project_urls', self.project_urls)
|
||||||
for source in self.metadata.__dict__, attrs:
|
self.metadata.long_description_content_type = attrs.get(
|
||||||
if option in source:
|
'long_description_content_type'
|
||||||
value = source[option]
|
)
|
||||||
break
|
self.metadata.provides_extras = getattr(
|
||||||
else:
|
self.metadata, 'provides_extras', set()
|
||||||
value = default() if default else None
|
)
|
||||||
setattr(self.metadata, option, value)
|
|
||||||
|
|
||||||
if isinstance(self.metadata.version, numbers.Number):
|
if isinstance(self.metadata.version, numbers.Number):
|
||||||
# Some people apparently take "version number" too literally :)
|
# Some people apparently take "version number" too literally :)
|
||||||
|
@ -48,7 +48,7 @@ class VendorImporter:
|
|||||||
# on later Python versions to cause relative imports
|
# on later Python versions to cause relative imports
|
||||||
# in the vendor package to resolve the same modules
|
# in the vendor package to resolve the same modules
|
||||||
# as those going through this importer.
|
# as those going through this importer.
|
||||||
if sys.version_info >= (3, ):
|
if sys.version_info > (3, 3):
|
||||||
del sys.modules[extant]
|
del sys.modules[extant]
|
||||||
return mod
|
return mod
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
@ -75,6 +75,8 @@ def patch_all():
|
|||||||
needs_warehouse = (
|
needs_warehouse = (
|
||||||
sys.version_info < (2, 7, 13)
|
sys.version_info < (2, 7, 13)
|
||||||
or
|
or
|
||||||
|
(3, 0) < sys.version_info < (3, 3, 7)
|
||||||
|
or
|
||||||
(3, 4) < sys.version_info < (3, 4, 6)
|
(3, 4) < sys.version_info < (3, 4, 6)
|
||||||
or
|
or
|
||||||
(3, 5) < sys.version_info <= (3, 5, 3)
|
(3, 5) < sys.version_info <= (3, 5, 3)
|
||||||
@ -85,6 +87,7 @@ def patch_all():
|
|||||||
distutils.config.PyPIRCCommand.DEFAULT_REPOSITORY = warehouse
|
distutils.config.PyPIRCCommand.DEFAULT_REPOSITORY = warehouse
|
||||||
|
|
||||||
_patch_distribution_metadata_write_pkg_file()
|
_patch_distribution_metadata_write_pkg_file()
|
||||||
|
_patch_distribution_metadata_write_pkg_info()
|
||||||
|
|
||||||
# Install Distribution throughout the distutils
|
# Install Distribution throughout the distutils
|
||||||
for module in distutils.dist, distutils.core, distutils.cmd:
|
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):
|
def patch_func(replacement, target_mod, func_name):
|
||||||
"""
|
"""
|
||||||
Patch func_name in target_mod with replacement
|
Patch func_name in target_mod with replacement
|
||||||
|
@ -232,7 +232,8 @@ def _augment_exception(exc, version, arch=''):
|
|||||||
elif version >= 14.0:
|
elif version >= 14.0:
|
||||||
# For VC++ 14.0 Redirect user to Visual C++ Build Tools
|
# For VC++ 14.0 Redirect user to Visual C++ Build Tools
|
||||||
message += (' Get it with "Microsoft 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, )
|
exc.args = (message, )
|
||||||
|
|
||||||
|
@ -26,13 +26,12 @@ from setuptools.py27compat import get_all_headers
|
|||||||
from setuptools.py33compat import unescape
|
from setuptools.py33compat import unescape
|
||||||
from setuptools.wheel import Wheel
|
from setuptools.wheel import Wheel
|
||||||
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
EGG_FRAGMENT = re.compile(r'^egg=([-A-Za-z0-9_.+!]+)$')
|
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(
|
PYPI_MD5 = re.compile(
|
||||||
r'<a href="([^"#]+)">([^<]+)</a>\n\s+\(<a (?:title="MD5 hash"\n\s+)'
|
'<a href="([^"#]+)">([^<]+)</a>\n\\s+\\(<a (?:title="MD5 hash"\n\\s+)'
|
||||||
r'href="[^?]+\?:action=show_md5&digest=([0-9a-f]{32})">md5</a>\)'
|
'href="[^?]+\\?:action=show_md5&digest=([0-9a-f]{32})">md5</a>\\)'
|
||||||
)
|
)
|
||||||
URL_SCHEME = re.compile('([-+.a-z0-9]{2,}):', re.I).match
|
URL_SCHEME = re.compile('([-+.a-z0-9]{2,}):', re.I).match
|
||||||
EXTENSIONS = ".tar.gz .tar.bz2 .tar .zip .tgz".split()
|
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)))
|
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
|
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"""
|
"""A distribution index that scans web pages for download URLs"""
|
||||||
|
|
||||||
def __init__(
|
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
|
ca_bundle=None, verify_ssl=True, *args, **kw
|
||||||
):
|
):
|
||||||
Environment.__init__(self, *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):
|
def decode_entity(match):
|
||||||
what = match.group(0)
|
what = match.group(1)
|
||||||
return unescape(what)
|
return unescape(what)
|
||||||
|
|
||||||
|
|
||||||
def htmldecode(text):
|
def htmldecode(text):
|
||||||
"""
|
"""Decode HTML entities in the given 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'
|
|
||||||
"""
|
|
||||||
return entity_sub(decode_entity, text)
|
return entity_sub(decode_entity, text)
|
||||||
|
|
||||||
|
|
||||||
@ -988,7 +980,7 @@ def _encode_auth(auth):
|
|||||||
return encoded.replace('\n', '')
|
return encoded.replace('\n', '')
|
||||||
|
|
||||||
|
|
||||||
class Credential:
|
class Credential(object):
|
||||||
"""
|
"""
|
||||||
A username/password pair. Use like a namedtuple.
|
A username/password pair. Use like a namedtuple.
|
||||||
"""
|
"""
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
import distutils.util
|
import distutils.util
|
||||||
from distutils import log
|
|
||||||
import platform
|
import platform
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
@ -12,8 +11,6 @@ import sysconfig
|
|||||||
import warnings
|
import warnings
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
|
||||||
from .extern import six
|
|
||||||
|
|
||||||
from . import glibc
|
from . import glibc
|
||||||
|
|
||||||
_osx_arch_pat = re.compile(r'(.+)_(\d+)_(\d+)_(.+)')
|
_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)
|
val = get_config_var(var)
|
||||||
if val is None:
|
if val is None:
|
||||||
if warn:
|
if warn:
|
||||||
log.debug("Config variable '%s' is unset, Python ABI tag may "
|
warnings.warn("Config variable '{0}' is unset, Python ABI tag may "
|
||||||
"be incorrect", var)
|
"be incorrect".format(var), RuntimeWarning, 2)
|
||||||
return fallback()
|
return fallback()
|
||||||
return val == expected
|
return val == expected
|
||||||
|
|
||||||
@ -99,8 +96,8 @@ def get_abi_tag():
|
|||||||
lambda: sys.maxunicode == 0x10ffff,
|
lambda: sys.maxunicode == 0x10ffff,
|
||||||
expected=4,
|
expected=4,
|
||||||
warn=(impl == 'cp' and
|
warn=(impl == 'cp' and
|
||||||
six.PY2)) \
|
sys.version_info < (3, 3))) \
|
||||||
and six.PY2:
|
and sys.version_info < (3, 3):
|
||||||
u = 'u'
|
u = 'u'
|
||||||
abi = '%s%s%s%s%s' % (impl, get_impl_ver(), d, m, u)
|
abi = '%s%s%s%s%s' % (impl, get_impl_ver(), d, m, u)
|
||||||
elif soabi and soabi.startswith('cpython-'):
|
elif soabi and soabi.startswith('cpython-'):
|
||||||
|
@ -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:
|
try:
|
||||||
@ -10,7 +19,7 @@ except ImportError:
|
|||||||
import shutil
|
import shutil
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
class TemporaryDirectory:
|
class TemporaryDirectory(object):
|
||||||
"""
|
"""
|
||||||
Very simple temporary directory context manager.
|
Very simple temporary directory context manager.
|
||||||
Will try to delete afterward, but will also ignore OS and similar
|
Will try to delete afterward, but will also ignore OS and similar
|
||||||
|
@ -10,12 +10,11 @@ except ImportError:
|
|||||||
from setuptools.extern import six
|
from setuptools.extern import six
|
||||||
from setuptools.extern.six.moves import html_parser
|
from setuptools.extern.six.moves import html_parser
|
||||||
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
OpArg = collections.namedtuple('OpArg', 'opcode arg')
|
OpArg = collections.namedtuple('OpArg', 'opcode arg')
|
||||||
|
|
||||||
|
|
||||||
class Bytecode_compat:
|
class Bytecode_compat(object):
|
||||||
def __init__(self, code):
|
def __init__(self, code):
|
||||||
self.code = code
|
self.code = code
|
||||||
|
|
||||||
|
@ -2,5 +2,4 @@
|
|||||||
__requires__ = %(spec)r
|
__requires__ = %(spec)r
|
||||||
__import__('pkg_resources').require(%(spec)r)
|
__import__('pkg_resources').require(%(spec)r)
|
||||||
__file__ = %(dev_path)r
|
__file__ = %(dev_path)r
|
||||||
with open(__file__) as f:
|
exec(compile(open(__file__).read(), __file__, 'exec'))
|
||||||
exec(compile(f.read(), __file__, 'exec'))
|
|
||||||
|
@ -23,7 +23,7 @@ def __boot():
|
|||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
try:
|
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])
|
stream, path, descr = imp.find_module('site', [item])
|
||||||
except ImportError:
|
except ImportError:
|
||||||
continue
|
continue
|
||||||
|
@ -1,29 +1,24 @@
|
|||||||
"""Wheels support."""
|
'''Wheels support.'''
|
||||||
|
|
||||||
from distutils.util import get_platform
|
from distutils.util import get_platform
|
||||||
import email
|
import email
|
||||||
import itertools
|
import itertools
|
||||||
import os
|
import os
|
||||||
import posixpath
|
|
||||||
import re
|
import re
|
||||||
import zipfile
|
import zipfile
|
||||||
|
|
||||||
from pkg_resources import Distribution, PathMetadata, parse_version
|
from pkg_resources import Distribution, PathMetadata, parse_version
|
||||||
from setuptools.extern.packaging.utils import canonicalize_name
|
|
||||||
from setuptools.extern.six import PY3
|
from setuptools.extern.six import PY3
|
||||||
from setuptools import Distribution as SetuptoolsDistribution
|
from setuptools import Distribution as SetuptoolsDistribution
|
||||||
from setuptools import pep425tags
|
from setuptools import pep425tags
|
||||||
from setuptools.command.egg_info import write_requirements
|
from setuptools.command.egg_info import write_requirements
|
||||||
|
|
||||||
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
|
|
||||||
WHEEL_NAME = re.compile(
|
WHEEL_NAME = re.compile(
|
||||||
r"""^(?P<project_name>.+?)-(?P<version>\d.*?)
|
r"""^(?P<project_name>.+?)-(?P<version>\d.*?)
|
||||||
((-(?P<build>\d.*?))?-(?P<py_version>.+?)-(?P<abi>.+?)-(?P<platform>.+?)
|
((-(?P<build>\d.*?))?-(?P<py_version>.+?)-(?P<abi>.+?)-(?P<platform>.+?)
|
||||||
)\.whl$""",
|
)\.whl$""",
|
||||||
re.VERBOSE).match
|
re.VERBOSE).match
|
||||||
|
|
||||||
NAMESPACE_PACKAGE_INIT = '''\
|
NAMESPACE_PACKAGE_INIT = '''\
|
||||||
try:
|
try:
|
||||||
@ -55,7 +50,7 @@ def unpack(src_dir, dst_dir):
|
|||||||
os.rmdir(dirpath)
|
os.rmdir(dirpath)
|
||||||
|
|
||||||
|
|
||||||
class Wheel:
|
class Wheel(object):
|
||||||
|
|
||||||
def __init__(self, filename):
|
def __init__(self, filename):
|
||||||
match = WHEEL_NAME(os.path.basename(filename))
|
match = WHEEL_NAME(os.path.basename(filename))
|
||||||
@ -67,11 +62,9 @@ class Wheel:
|
|||||||
|
|
||||||
def tags(self):
|
def tags(self):
|
||||||
'''List tags (py_version, abi, platform) supported by this wheel.'''
|
'''List tags (py_version, abi, platform) supported by this wheel.'''
|
||||||
return itertools.product(
|
return itertools.product(self.py_version.split('.'),
|
||||||
self.py_version.split('.'),
|
self.abi.split('.'),
|
||||||
self.abi.split('.'),
|
self.platform.split('.'))
|
||||||
self.platform.split('.'),
|
|
||||||
)
|
|
||||||
|
|
||||||
def is_compatible(self):
|
def is_compatible(self):
|
||||||
'''Is the wheel is compatible with the current platform?'''
|
'''Is the wheel is compatible with the current platform?'''
|
||||||
@ -84,127 +77,87 @@ class Wheel:
|
|||||||
platform=(None if self.platform == 'any' else get_platform()),
|
platform=(None if self.platform == 'any' else get_platform()),
|
||||||
).egg_name() + '.egg'
|
).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):
|
def install_as_egg(self, destination_eggdir):
|
||||||
'''Install wheel as an egg directory.'''
|
'''Install wheel as an egg directory.'''
|
||||||
with zipfile.ZipFile(self.filename) as zf:
|
with zipfile.ZipFile(self.filename) as zf:
|
||||||
self._install_as_egg(destination_eggdir, zf)
|
dist_basename = '%s-%s' % (self.project_name, self.version)
|
||||||
|
dist_info = '%s.dist-info' % dist_basename
|
||||||
def _install_as_egg(self, destination_eggdir, zf):
|
dist_data = '%s.data' % dist_basename
|
||||||
dist_basename = '%s-%s' % (self.project_name, self.version)
|
def get_metadata(name):
|
||||||
dist_info = self.get_dist_info(zf)
|
with zf.open('%s/%s' % (dist_info, name)) as fp:
|
||||||
dist_data = '%s.data' % dist_basename
|
value = fp.read().decode('utf-8') if PY3 else fp.read()
|
||||||
egg_info = os.path.join(destination_eggdir, 'EGG-INFO')
|
return email.parser.Parser().parsestr(value)
|
||||||
|
wheel_metadata = get_metadata('WHEEL')
|
||||||
self._convert_metadata(zf, destination_eggdir, dist_info, egg_info)
|
dist_metadata = get_metadata('METADATA')
|
||||||
self._move_data_entries(destination_eggdir, dist_data)
|
# Check wheel format version is supported.
|
||||||
self._fix_namespace_packages(egg_info, destination_eggdir)
|
wheel_version = parse_version(wheel_metadata.get('Wheel-Version'))
|
||||||
|
if not parse_version('1.0') <= wheel_version < parse_version('2.0dev0'):
|
||||||
@staticmethod
|
raise ValueError('unsupported wheel format version: %s' % wheel_version)
|
||||||
def _convert_metadata(zf, destination_eggdir, dist_info, egg_info):
|
# Extract to target directory.
|
||||||
def get_metadata(name):
|
os.mkdir(destination_eggdir)
|
||||||
with zf.open(posixpath.join(dist_info, name)) as fp:
|
zf.extractall(destination_eggdir)
|
||||||
value = fp.read().decode('utf-8') if PY3 else fp.read()
|
# Convert metadata.
|
||||||
return email.parser.Parser().parsestr(value)
|
dist_info = os.path.join(destination_eggdir, dist_info)
|
||||||
|
dist = Distribution.from_location(
|
||||||
wheel_metadata = get_metadata('WHEEL')
|
destination_eggdir, dist_info,
|
||||||
# Check wheel format version is supported.
|
metadata=PathMetadata(destination_eggdir, dist_info)
|
||||||
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
|
|
||||||
)
|
)
|
||||||
for extra in dist.extras
|
# Note: we need to evaluate and strip markers now,
|
||||||
}
|
# as we can't easily convert back from the syntax:
|
||||||
os.rename(dist_info, egg_info)
|
# foobar; "linux" in sys_platform and extra == 'test'
|
||||||
os.rename(
|
def raw_req(req):
|
||||||
os.path.join(egg_info, 'METADATA'),
|
req.marker = None
|
||||||
os.path.join(egg_info, 'PKG-INFO'),
|
return str(req)
|
||||||
)
|
install_requires = list(sorted(map(raw_req, dist.requires())))
|
||||||
setup_dist = SetuptoolsDistribution(
|
extras_require = {
|
||||||
attrs=dict(
|
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,
|
install_requires=install_requires,
|
||||||
extras_require=extras_require,
|
extras_require=extras_require,
|
||||||
),
|
))
|
||||||
)
|
write_requirements(setup_dist.get_command_obj('egg_info'),
|
||||||
write_requirements(
|
None, os.path.join(egg_info, 'requires.txt'))
|
||||||
setup_dist.get_command_obj('egg_info'),
|
# Move data entries to their correct location.
|
||||||
None,
|
dist_data = os.path.join(destination_eggdir, dist_data)
|
||||||
os.path.join(egg_info, 'requires.txt'),
|
dist_data_scripts = os.path.join(dist_data, 'scripts')
|
||||||
)
|
if os.path.exists(dist_data_scripts):
|
||||||
|
egg_info_scripts = os.path.join(destination_eggdir,
|
||||||
@staticmethod
|
'EGG-INFO', 'scripts')
|
||||||
def _move_data_entries(destination_eggdir, dist_data):
|
os.mkdir(egg_info_scripts)
|
||||||
"""Move data entries to their correct location."""
|
for entry in os.listdir(dist_data_scripts):
|
||||||
dist_data = os.path.join(destination_eggdir, dist_data)
|
# Remove bytecode, as it's not properly handled
|
||||||
dist_data_scripts = os.path.join(dist_data, 'scripts')
|
# during easy_install scripts install phase.
|
||||||
if os.path.exists(dist_data_scripts):
|
if entry.endswith('.pyc'):
|
||||||
egg_info_scripts = os.path.join(
|
os.unlink(os.path.join(dist_data_scripts, entry))
|
||||||
destination_eggdir, 'EGG-INFO', 'scripts')
|
else:
|
||||||
os.mkdir(egg_info_scripts)
|
os.rename(os.path.join(dist_data_scripts, entry),
|
||||||
for entry in os.listdir(dist_data_scripts):
|
os.path.join(egg_info_scripts, entry))
|
||||||
# Remove bytecode, as it's not properly handled
|
os.rmdir(dist_data_scripts)
|
||||||
# during easy_install scripts install phase.
|
for subdir in filter(os.path.exists, (
|
||||||
if entry.endswith('.pyc'):
|
os.path.join(dist_data, d)
|
||||||
os.unlink(os.path.join(dist_data_scripts, entry))
|
for d in ('data', 'headers', 'purelib', 'platlib')
|
||||||
else:
|
)):
|
||||||
os.rename(
|
unpack(subdir, destination_eggdir)
|
||||||
os.path.join(dist_data_scripts, entry),
|
if os.path.exists(dist_data):
|
||||||
os.path.join(egg_info_scripts, entry),
|
os.rmdir(dist_data)
|
||||||
)
|
# Fix namespace packages.
|
||||||
os.rmdir(dist_data_scripts)
|
namespace_packages = os.path.join(egg_info, 'namespace_packages.txt')
|
||||||
for subdir in filter(os.path.exists, (
|
if os.path.exists(namespace_packages):
|
||||||
os.path.join(dist_data, d)
|
with open(namespace_packages) as fp:
|
||||||
for d in ('data', 'headers', 'purelib', 'platlib')
|
namespace_packages = fp.read().split()
|
||||||
)):
|
for mod in namespace_packages:
|
||||||
unpack(subdir, destination_eggdir)
|
mod_dir = os.path.join(destination_eggdir, *mod.split('.'))
|
||||||
if os.path.exists(dist_data):
|
mod_init = os.path.join(mod_dir, '__init__.py')
|
||||||
os.rmdir(dist_data)
|
if os.path.exists(mod_dir) and not os.path.exists(mod_init):
|
||||||
|
with open(mod_init, 'w') as fp:
|
||||||
@staticmethod
|
fp.write(NAMESPACE_PACKAGE_INIT)
|
||||||
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)
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user