Files
wg-backend-django/dell-env/lib/python3.11/site-packages/bs4/__pycache__/diagnose.cpython-311.pyc

82 lines
14 KiB
Plaintext
Raw Normal View History

2023-10-30 14:40:43 +07:00
<EFBFBD>
<08>]d<><00><00>F<00>dZdZddlZddlmZddlmZddlZddlmZm Z ddl
m Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZd<08>Zdd
<EFBFBD>ZGd <0B>d e<06><00>Zd <0A>ZdZdZdd<11>Zdd<13>Zdd<15>Zdd<17>Zd d<19>Zedkr$eej<00> <00><00><00><00>dSdS)!z=Diagnostic functions, mainly for use when doing tech support.<2E>MIT<49>N)<01>BytesIO)<01>
HTMLParser)<02> BeautifulSoup<75> __version__)<01>builder_registryc <00><><00>tdtz<00><00>tdtjz<00><00>gd<03>}|D]C}tjD] }||jvrn(<28>|<01>|<02><00>td|z<00><00><00>Dd|vr<>|<01>d<06><00> ddl m
}td d
<EFBFBD> tt|j<00><00><00><00>z<00><00>n&#t$r}td <0B><00>Yd }~nd }~wwxYwd |vrC dd l}td|jz<00><00>n&#t$r}td<0F><00>Yd }~nd }~wwxYwt#|d<10><00>r|<00><00><00>}n<>|<00>d<11><00>s|<00>d<12><00>r#td|z<00><00>td<14><00>d S t(j<00>|<00><00>rMtd|z<00><00>t/|<00><00>5}|<07><00><00>}d d d <0C><00>n #1swxYwYn#t0$rYnwxYwtd<16><00>|D]<5D>}td|z<00><00>d} t3||<08><19><00>}
d} n<#t4$r/}td|z<00><00>t7j<00><00>Yd }~nd }~wwxYw| r3td|z<00><00>t|
<EFBFBD><00><00><00><00>td<1D><00><00><>d S)z<>Diagnostic suite for isolating common problems.
:param data: A string containing markup that needs to be explained.
:return: None; diagnostics are printed to standard output.
z'Diagnostic running on Beautiful Soup %szPython version %s)<03> html.parser<65>html5lib<69>lxmlz;I noticed that %s is not installed. Installing it may help.r zlxml-xmlr<00><01>etreezFound lxml version %s<>.z.lxml is not installed or couldn't be imported.Nr zFound html5lib version %sz2html5lib is not installed or couldn't be imported.<2E>readzhttp:zhttps:z<"%s" looks like a URL. Beautiful Soup is not an HTTP client.zpYou need to use some other library to get the document behind the URL, and feed that document to Beautiful Soup.z7"%s" looks like a filename. Reading data from the file.<2E>z#Trying to parse your markup with %sF)<01>featuresT<73>%s could not parse the markup.z#Here's what %s did with the markup:zP--------------------------------------------------------------------------------)<1E>printr<00>sys<79>versionr<00>buildersr<00>remove<76>appendr r<00>join<69>map<61>str<74> LXML_VERSION<4F> ImportErrorr <00>hasattrr<00>
startswith<EFBFBD>os<6F>path<74>exists<74>open<65>
ValueErrorr<00> Exception<6F> traceback<63> print_exc<78>prettify) <0B>data<74> basic_parsers<72>name<6D>builderr<00>er <00>fp<66>parser<65>success<73>soups <20>e/home/infidel/Sync/TIP/WireGuard/ocp-wg-backend/dell-env/lib/python3.11/site-packages/bs4/diagnose.py<70>diagnoser4s'<00><00> 
<EFBFBD> 4<>{<7B> B<>D<>D<>D<> <09> <1E><13><1B> ,<2C>.<2E>.<2E>.<2E>7<>7<>7<>M<EFBFBD><1D><17><17><04>'<27>0<> <17> <17>G<EFBFBD><13>w<EFBFBD>'<27>'<27>'<27><15><05>(<28> <1A> <20> <20><14> &<26> &<26> &<26> <11>M<><14><15> <17> <17> <17><><0E><1D><1E><1E><15><1C><1C>Z<EFBFBD>(<28>(<28>(<28> B<01> "<22> "<22> "<22> "<22> "<22> "<22> <11>*<2A>S<EFBFBD>X<EFBFBD>X<EFBFBD>c<EFBFBD>#<23>e<EFBFBD>>P<>6Q<36>6Q<36>-R<>-R<>R<> T<> T<> T<> T<><54><1A> B<01> B<01> B<01> <11>@<40> B<01> B<01> B<01> B<01> B<01> B<01> B<01> B<01><><EFBFBD><EFBFBD><EFBFBD> B<01><><EFBFBD><EFBFBD>
<12>]<5D>"<22>"<22> F<01> <1B>O<EFBFBD>O<EFBFBD>O<EFBFBD> <11>.<2E><18>1E<31>E<> G<> G<> G<> G<><47><1A> F<01> F<01> F<01> <11>D<> F<01> F<01> F<01> F<01> F<01> F<01> F<01> F<01><><EFBFBD><EFBFBD><EFBFBD> F<01><><EFBFBD><EFBFBD><0F>t<EFBFBD>V<EFBFBD><1C><1C><12><13>y<EFBFBD>y<EFBFBD>{<7B>{<7B><04><04> <0A><1F><1F><17> !<21> !<21><12>T<EFBFBD>_<EFBFBD>_<EFBFBD>X<EFBFBD>%><3E>%><3E><12> <0A>M<>PT<50>T<>V<>V<>V<> <0A>A<02> B<02> B<02> B<02><0E><06> <11><11>w<EFBFBD>~<7E>~<7E>d<EFBFBD>#<23>#<23> %<25><15>P<>SW<53>W<>Y<>Y<>Y<><19>$<24>Z<EFBFBD>Z<EFBFBD>%<25>2<EFBFBD><1D>7<EFBFBD>7<EFBFBD>9<EFBFBD>9<EFBFBD>D<EFBFBD>%<25>%<25>%<25>%<25>%<25>%<25>%<25>%<25>%<25>%<25>%<25><><EFBFBD><EFBFBD>%<25>%<25>%<25>%<25><><EFBFBD><19> <11> <11> <11> <11>D<EFBFBD> <11><><EFBFBD><EFBFBD> <0E>b<EFBFBD> <09> <09> <09><1F> <1A> <1A><06> <0A>4<>v<EFBFBD>=<3D>?<3F>?<3F>?<3F><17><07> "<22> <20><14><06>7<>7<>7<>D<EFBFBD><1A>G<EFBFBD>G<EFBFBD><47><18> "<22> "<22> "<22> <11>3<>f<EFBFBD><<3C> ><3E> ><3E> ><3E> <15> <1F> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21><><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD> <13> %<25> <11>8<>6<EFBFBD>A<> C<> C<> C<> <11>4<EFBFBD>=<3D>=<3D>?<3F>?<3F> $<24> $<24> $<24> <0A>x<EFBFBD><19><19><19><19> <1A> s<><00>AC<00>
C?<03>&C:<03>:C?<03>D#<00>#
E<03>-E<03>E<03><AH)<00><H<03> H)<00>H!<07>!H)<00>$H!<07>%H)<00>)
H6<03>5H6<03>!I5<02>5
J.<05>?%J)<05>)J.Tc <00>"<00>ddlm}|<02>dd<04><00>}t|t<00><00>r|<00>d<05><00>}t |<00><00>}|j|f||d<06>|<02><01>D]'\}}t|<06>d|j d<08>d|j
<00><01><05><00><00>(d S)
a<EFBFBD>Print out the lxml events that occur during parsing.
This lets you see how lxml parses a document when no Beautiful
Soup code is running. You can use this to determine whether
an lxml-specific problem is in Beautiful Soup's lxml tree builders
or in lxml itself.
:param data: Some markup.
:param html: If True, markup will be parsed with lxml's HTML parser.
if False, lxml's XML parser will be used.
rr <00>recoverT<72>utf8)<02>htmlr6z, z>4N) r r<00>pop<6F>
isinstancer<00>encoder<00> iterparser<00>tag<61>text)r*r8<00>kwargsrr6<00>reader<65>event<6E>elements r3<00>
lxml_tracerC]s<><00><00><1B><1A><1A><1A><1A><1A><14>j<EFBFBD>j<EFBFBD><19>D<EFBFBD>)<29>)<29>G<EFBFBD><11>$<24><03><1C><1C>#<23><13>{<7B>{<7B>6<EFBFBD>"<22>"<22><04> <14>T<EFBFBD>]<5D>]<5D>F<EFBFBD>)<29>%<25>/<2F><0E><06><19>7<EFBFBD><06><06>.4<EFBFBD><06><06>D<01>D<01><0E><05>w<EFBFBD> <0E><05><05><05>w<EFBFBD>{<7B>{<7B>{<7B>{<7B>G<EFBFBD>L<EFBFBD>L<EFBFBD>A<>C<>C<>C<>C<>D<01>D<01>c<00>N<00>eZdZdZd<02>Zd<03>Zd<04>Zd<05>Zd<06>Zd<07>Z d<08>Z
d <09>Z d
<EFBFBD>Z d <0B>Z d S) <0A>AnnouncingParserz<72>Subclass of HTMLParser that announces parse events, without doing
anything else.
You can use this to get a picture of how html.parser sees a given
document. The easiest way to do this is to call `htmlparser_trace`.
c<00>$<00>t|<01><00>dS)N)r)<02>self<6C>ss r3<00>_pzAnnouncingParser._p{s<00><00> <0A>a<EFBFBD><08><08><08><08>rDc<00>6<00>|<00>d|z<00><00>dS)Nz%s START<52>rJ)rHr,<00>attrss r3<00>handle_starttagz AnnouncingParser.handle_starttag~s<00><00> <0C><07><07>
<EFBFBD>T<EFBFBD>!<21>"<22>"<22>"<22>"<22>"rDc<00>6<00>|<00>d|z<00><00>dS)Nz%s ENDrL<00>rHr,s r3<00> handle_endtagzAnnouncingParser.handle_endtag<61>s<00><00> <0C><07><07><08>4<EFBFBD><0F> <20> <20> <20> <20> rDc<00>6<00>|<00>d|z<00><00>dS)Nz%s DATArL<00>rHr*s r3<00> handle_datazAnnouncingParser.handle_data<74><00><00><00> <0C><07><07> <09>D<EFBFBD> <20>!<21>!<21>!<21>!<21>!rDc<00>6<00>|<00>d|z<00><00>dS)Nz
%s CHARREFrLrPs r3<00>handle_charrefzAnnouncingParser.handle_charref<65><00><00><00> <0C><07><07> <0C>t<EFBFBD>#<23>$<24>$<24>$<24>$<24>$rDc<00>6<00>|<00>d|z<00><00>dS)Nz %s ENTITYREFrLrPs r3<00>handle_entityrefz!AnnouncingParser.handle_entityref<65>s<00><00> <0C><07><07><0E><14>%<25>&<26>&<26>&<26>&<26>&rDc<00>6<00>|<00>d|z<00><00>dS)Nz
%s COMMENTrLrSs r3<00>handle_commentzAnnouncingParser.handle_comment<6E>rXrDc<00>6<00>|<00>d|z<00><00>dS)Nz%s DECLrLrSs r3<00> handle_declzAnnouncingParser.handle_decl<63>rUrDc<00>6<00>|<00>d|z<00><00>dS)Nz%s UNKNOWN-DECLrLrSs r3<00> unknown_declzAnnouncingParser.unknown_decl<63>s <00><00> <0C><07><07>!<21>D<EFBFBD>(<28>)<29>)<29>)<29>)<29>)rDc<00>6<00>|<00>d|z<00><00>dS)Nz%s PIrLrSs r3<00> handle_pizAnnouncingParser.handle_pi<70>s<00><00> <0C><07><07><07>$<24><0E><1F><1F><1F><1F>rDN)<0E>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__rJrNrQrTrWrZr\r^r`rb<00>rDr3rFrFss<><00><00><00><00><00><00><08><08><11><11><11>#<23>#<23>#<23>!<21>!<21>!<21>"<22>"<22>"<22>%<25>%<25>%<25>'<27>'<27>'<27>%<25>%<25>%<25>"<22>"<22>"<22>*<2A>*<2A>*<2A> <20> <20> <20> <20> rDrFc<00>L<00>t<00><00>}|<01>|<00><00>dS)z<>Print out the HTMLParser events that occur during parsing.
This lets you see how HTMLParser parses a document when no
Beautiful Soup code is running.
:param data: Some markup.
N)rF<00>feed)r*r0s r3<00>htmlparser_tracerj<00>s'<00><00><1E> <1F> <1F>F<EFBFBD>
<EFBFBD>K<EFBFBD>K<EFBFBD><04><15><15><15><15>rD<00>aeiou<6F>bcdfghjklmnpqrstvwxyz<79>c<00><><00>d}t|<00><00>D]1}|dzdkrt}nt}|tj|<03><00>z }<01>2|S)z#Generate a random word-like string.r<00>r)<05>range<67> _consonants<74>_vowels<6C>random<6F>choice)<04>lengthrI<00>i<>ts r3<00>rwordrx<00>sP<00><00>
<EFBFBD>A<EFBFBD> <12>6<EFBFBD>]<5D>]<5D><1E><1E><01> <0C>q<EFBFBD>5<EFBFBD>A<EFBFBD>:<3A>:<3A><1B>A<EFBFBD>A<EFBFBD><17>A<EFBFBD> <09>V<EFBFBD>]<5D>1<EFBFBD> <1D> <1D><1D><01><01> <0C>HrD<00>c<00>Z<00>d<01>d<02>t|<00><00>D<00><00><00><00>S)z'Generate a random sentence-like string.<2E> c3<00>ZK<00>|]&}ttjdd<01><00><00><00>V<00><00>'dS)ry<00> N)rxrs<00>randint)<02>.0rvs r3<00> <genexpr>zrsentence.<locals>.<genexpr><3E>s6<00><00><00><00>F<>F<>1<EFBFBD>E<EFBFBD>&<26>.<2E><11>1<EFBFBD>-<2D>-<2D>.<2E>.<2E>F<>F<>F<>F<>F<>FrD)rrp)rus r3<00> rsentencer<65><00>s)<00><00> <0E>8<EFBFBD>8<EFBFBD>F<>F<><05>f<EFBFBD> <0A> <0A>F<>F<>F<> F<> F<>FrD<00><>c <00><><00>gd<01>}g}t|<00><00>D]<5D>}tjdd<03><00>}|dkr-tj|<01><00>}|<02>d|z<00><00><00>J|dkr6|<02>t tjdd<06><00><00><00><00><00><00><>|dkr,tj|<01><00>}|<02>d|z<00><00><00><>d d
<EFBFBD>|<02><00>zd zS) z+Randomly generate an invalid HTML document.)<07>p<>div<69>spanrv<00>b<>script<70>tabler<00>z<%s><3E>ryroz</%s>z<html><3E>
z</html>)rprsr~rtrr<>r)<06> num_elements<74> tag_names<65>elementsrvrt<00>tag_names r3<00>rdocr<63><00>s<><00><00>A<>A<>A<>I<EFBFBD><11>H<EFBFBD> <12><<3C> <20> <20> 0<> 0<><01><17><1E><01>!<21>$<24>$<24><06> <11>Q<EFBFBD>;<3B>;<3B><1D>}<7D>Y<EFBFBD>/<2F>/<2F>H<EFBFBD> <14>O<EFBFBD>O<EFBFBD>F<EFBFBD>X<EFBFBD>-<2D> .<2E> .<2E> .<2E> .<2E> <13>q<EFBFBD>[<5B>[<5B> <14>O<EFBFBD>O<EFBFBD>I<EFBFBD>f<EFBFBD>n<EFBFBD>Q<EFBFBD>q<EFBFBD>&9<>&9<>:<3A>:<3A> ;<3B> ;<3B> ;<3B> ;<3B> <13>q<EFBFBD>[<5B>[<5B><1D>}<7D>Y<EFBFBD>/<2F>/<2F>H<EFBFBD> <14>O<EFBFBD>O<EFBFBD>G<EFBFBD>h<EFBFBD>.<2E> /<2F> /<2F> /<2F><> <13>d<EFBFBD>i<EFBFBD>i<EFBFBD><08>)<29>)<29> )<29>I<EFBFBD> 5<>5rDc<00>D<00>tdtz<00><00>t|<00><00>}tdt|<01><00>z<00><00>dddgddfD]<5D>}d} t j<00><00>}t ||<02><00>}t j<00><00>}d}n<#t $r/}td |z<00><00>tj<00><00>Yd
}~nd
}~wwxYw|rtd |||z
fz<00><00><00><>d d l m
}t j<00><00>}|<08> |<01><00>t j<00><00>}td||z
z<00><00>d d
l } | <09> <00><00>}t j<00><00>}|<02>|<01><00>t j<00><00>}td||z
z<00><00>d
S)z.Very basic head-to-head performance benchmark.z1Comparative parser benchmark on Beautiful Soup %sz3Generated a large invalid HTML document (%d bytes).r r8r r
FTrNz"BS4+%s parsed the markup in %.2fs.rr z$Raw lxml parsed the markup in %.2fs.z(Raw html5lib parsed the markup in %.2fs.)rrr<><00>len<65>timerr&r'r(r r<00>HTMLr r<00>parse)
r<EFBFBD>r*r0r1<00>ar2r<>r.rr s
r3<00>benchmark_parsersr<73><00>s<><00><00> <09> ><3E><1B> L<>N<>N<>N<> <0F> <0C> <1D> <1D>D<EFBFBD> <09> @<40>3<EFBFBD>t<EFBFBD>9<EFBFBD>9<EFBFBD> L<>N<>N<>N<><19>F<EFBFBD>F<EFBFBD>+<2B>Z<EFBFBD><1D>G<> J<01> J<01><06><17><07> "<22><14> <09> <0B> <0B>A<EFBFBD> <20><14>v<EFBFBD>.<2E>.<2E>D<EFBFBD><14> <09> <0B> <0B>A<EFBFBD><1A>G<EFBFBD>G<EFBFBD><47><18> "<22> "<22> "<22> <11>3<>f<EFBFBD><<3C> ><3E> ><3E> ><3E> <15> <1F> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21><><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD> <13> J<01> <11>7<>6<EFBFBD>1<EFBFBD>Q<EFBFBD>3<EFBFBD>-<2D>G<> I<> I<> I<><49><1A><1A><1A><1A><1A><1A> <0C> <09> <0B> <0B>A<EFBFBD> <09>J<EFBFBD>J<EFBFBD>t<EFBFBD><14><14><14> <0C> <09> <0B> <0B>A<EFBFBD> <09> 1<>Q<EFBFBD>q<EFBFBD>S<EFBFBD> 9<>;<3B>;<3B>;<3B><13>O<EFBFBD>O<EFBFBD>O<EFBFBD> <15> <20> <20> "<22> "<22>F<EFBFBD> <0C> <09> <0B> <0B>A<EFBFBD>
<EFBFBD>L<EFBFBD>L<EFBFBD><14><16><16><16> <0C> <09> <0B> <0B>A<EFBFBD> <09> 5<><11>1<EFBFBD><13> =<3D>?<3F>?<3F>?<3F>?<3F>?s<00>8B <02>
C<05>%C<05>Cr c<00>2<00>tj<00><00>}|j}t|<00><00>}t t
||<01><01><00>}t jd|||<03><00>tj |<03><00>}|<06>
d<03><00>|<06> dd<05><00>dS)z7Use Python's profiler on a randomly generated document.)<03>bs4r*r0zbs4.BeautifulSoup(data, parser)<29>
cumulativez _html5lib|bs4<73>2N) <0C>tempfile<6C>NamedTemporaryFiler,r<><00>dictr<74><00>cProfile<6C>runctx<74>pstats<74>Stats<74>
sort_stats<EFBFBD> print_stats)r<>r0<00>
filehandle<EFBFBD>filenamer*<00>vars<72>statss r3<00>profiler<65><00>s<><00><00><19>,<2C>.<2E>.<2E>J<EFBFBD><19><EFBFBD>H<EFBFBD> <0F> <0C> <1D> <1D>D<EFBFBD> <0F>C<EFBFBD>d<EFBFBD>6<EFBFBD> 2<> 2<> 2<>D<EFBFBD> <0C>O<EFBFBD>5<><04>d<EFBFBD>H<EFBFBD>M<>M<>M<> <12>L<EFBFBD><18> "<22> "<22>E<EFBFBD> <09><14><14>\<5C>"<22>"<22>"<22> <09><15><15>o<EFBFBD>r<EFBFBD>*<2A>*<2A>*<2A>*<2A>*rD<00>__main__)T)rm)ry)r<>)r<>)r<>r )!rf<00> __license__r<5F><00>ior<00> html.parserrr<>rr<00> bs4.builderrr!r<>rsr<>r<>r'rr4rCrFrjrrrqrxr<>r<>r<>r<>rc<00>stdinrrgrDr3<00><module>r<>s<><00><01>C<>C<><14> <0B><0F><0F><0F><0F><16><16><16><16><16><16>"<22>"<22>"<22>"<22>"<22>"<22>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>(<28>(<28>(<28>(<28>(<28>(<28> <09> <09> <09> <09> <0A> <0A> <0A> <0A> <0A> <0A> <0A> <0A><0F><0F><0F><0F> <0B> <0B> <0B> <0B><10><10><10><10>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD><0F><0F><0F><0F>E<1A>E<1A>E<1A>ND<01>D<01>D<01>D<01>,$ <20>$ <20>$ <20>$ <20>$ <20>z<EFBFBD>$ <20>$ <20>$ <20>L <16> <16> <16> <12><07>%<25> <0B>  <0A>  <0A>  <0A>  <0A>G<01>G<01>G<01>G<01>6<>6<>6<>6<>$@<01>@<01>@<01>@<01>@ +<2B> +<2B> +<2B> +<2B> <0C>z<EFBFBD><19><19> <0C>H<EFBFBD>S<EFBFBD>Y<EFBFBD>^<5E>^<5E> <1D> <1D><1E><1E><1E><1E><1E><1A>rD