75.4 KB
pyquery version 1.2.9-5~jan+unchanged1 (unchanged) vs.
pyquery version 1.4.3+git20210309.1.5e32510-1~jan+nus1 (fresh-snapshots)
75.3 KB
python3-pyquery_1.2.9-5~jan+unchanged1_all.deb vs.
python3-pyquery_1.4.3+git20210309.1.5e32510-1~jan+nus1_all.deb
452 B
file list
    
Offset 1, 3 lines modifiedOffset 1, 3 lines modified
1 -rw-r--r--···0········0········0········4·2020-09-24·06:55:53.000000·debian-binary1 -rw-r--r--···0········0········0········4·2020-09-24·06:55:53.000000·debian-binary
2 -rw-r--r--···0········0········0·····1448·2020-09-24·06:55:53.000000·control.tar.xz2 -rw-r--r--···0········0········0·····1440·2020-09-24·06:55:53.000000·control.tar.xz
3 -rw-r--r--···0········0········0····18424·2020-09-24·06:55:53.000000·data.tar.xz3 -rw-r--r--···0········0········0····22884·2020-09-24·06:55:53.000000·data.tar.xz
2.77 KB
control.tar.xz
2.74 KB
control.tar
698 B
file list
    
Offset 1, 5 lines modifiedOffset 1, 5 lines modified
1 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./1 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./
2 -rw-r--r--···0·root·········(0)·root·········(0)······567·2020-09-24·06:55:53.000000·./control2 -rw-r--r--···0·root·········(0)·root·········(0)······584·2020-09-24·06:55:53.000000·./control
3 -rw-r--r--···0·root·········(0)·root·········(0)·····1420·2020-09-24·06:55:53.000000·./md5sums3 -rw-r--r--···0·root·········(0)·root·········(0)·····1369·2020-09-24·06:55:53.000000·./md5sums
4 -rwxr-xr-x···0·root·········(0)·root·········(0)······255·2020-09-24·06:55:53.000000·./postinst4 -rwxr-xr-x···0·root·········(0)·root·········(0)······255·2020-09-24·06:55:53.000000·./postinst
5 -rwxr-xr-x···0·root·········(0)·root·········(0)······404·2020-09-24·06:55:53.000000·./prerm5 -rwxr-xr-x···0·root·········(0)·root·········(0)······404·2020-09-24·06:55:53.000000·./prerm
620 B
./control
    
Offset 1, 13 lines modifiedOffset 1, 13 lines modified
1 Package:·python3-pyquery1 Package:·python3-pyquery
2 Source:·pyquery2 Source:·pyquery
3 Version:·1.2.9-5~jan+unchanged13 Version:·1.4.3+git20210309.1.5e32510-1~jan+nus1
4 Architecture:·all4 Architecture:·all
5 Maintainer:·Debian·Python·Team·<team+python@tracker.debian.org>5 Maintainer:·Debian·Python·Team·<team+python@tracker.debian.org>
6 Installed-Size:·976 Installed-Size:·114
7 Depends:·python3-lxml,·python3-webob,·python3-cssselect,·python3:any7 Depends:·python3-lxml,·python3-webob,·python3-cssselect,·python3:any
8 Section:·python8 Section:·python
9 Priority:·optional9 Priority:·optional
10 Homepage:·http://pyquery.org/10 Homepage:·http://pyquery.org/
11 Description:·jQuery-like·library·for·python·311 Description:·jQuery-like·library·for·python·3
12 ·pyquery·allows·you·to·make·jQuery·queries·on·XML·documents.·The·API·is·as12 ·pyquery·allows·you·to·make·jQuery·queries·on·XML·documents.·The·API·is·as
13 ·similar·to·jQuery·as·possible.·pyquery·uses·lxml·for·fast·XML·and·HTML13 ·similar·to·jQuery·as·possible.·pyquery·uses·lxml·for·fast·XML·and·HTML
1.43 KB
./md5sums
30.0 B
./md5sums
Files differ
1.38 KB
line order
    
Offset 1, 16 lines modifiedOffset 1, 15 lines modified
1 usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/PKG-INFO1 usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/PKG-INFO
2 usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/dependency_links.txt2 usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/dependency_links.txt
3 usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/entry_points.txt3 usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/entry_points.txt
4 usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/not-zip-safe4 usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/not-zip-safe
5 usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/requires.txt5 usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/requires.txt
6 usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/top_level.txt6 usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/top_level.txt
7 usr/lib/python3/dist-packages/pyquery/__init__.py7 usr/lib/python3/dist-packages/pyquery/__init__.py
8 usr/lib/python3/dist-packages/pyquery/ajax.py 
9 usr/lib/python3/dist-packages/pyquery/cssselectpatch.py8 usr/lib/python3/dist-packages/pyquery/cssselectpatch.py
10 usr/lib/python3/dist-packages/pyquery/openers.py9 usr/lib/python3/dist-packages/pyquery/openers.py
11 usr/lib/python3/dist-packages/pyquery/pyquery.py10 usr/lib/python3/dist-packages/pyquery/pyquery.py
12 usr/lib/python3/dist-packages/pyquery/rules.py11 usr/lib/python3/dist-packages/pyquery/text.py
13 usr/share/doc/python3-pyquery/README.rst12 usr/share/doc/python3-pyquery/README.rst
14 usr/share/doc/python3-pyquery/changelog.Debian.gz13 usr/share/doc/python3-pyquery/changelog.Debian.gz
15 usr/share/doc/python3-pyquery/changelog.gz14 usr/share/doc/python3-pyquery/changelog.gz
16 usr/share/doc/python3-pyquery/copyright15 usr/share/doc/python3-pyquery/copyright
72.0 KB
data.tar.xz
71.9 KB
data.tar
5.48 KB
file list
    
Offset 1, 26 lines modifiedOffset 1, 25 lines modified
1 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./1 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./
2 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/2 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/
3 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/lib/3 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/lib/
4 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/lib/python3/4 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/lib/python3/
5 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/5 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/
6 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery/6 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery/
7 -rw-r--r--···0·root·········(0)·root·········(0)······273·2014-08-22·12:35:30.000000·./usr/lib/python3/dist-packages/pyquery/__init__.py7 -rw-r--r--···0·root·········(0)·root·········(0)······155·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery/__init__.py
8 -rw-r--r--···0·root·········(0)·root·········(0)·····2700·2014-08-22·12:35:30.000000·./usr/lib/python3/dist-packages/pyquery/ajax.py 
9 -rw-r--r--···0·root·········(0)·root·········(0)····12755·2014-08-22·12:35:30.000000·./usr/lib/python3/dist-packages/pyquery/cssselectpatch.py8 -rw-r--r--···0·root·········(0)·root·········(0)····14618·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery/cssselectpatch.py
10 -rw-r--r--···0·root·········(0)·root·········(0)·····1665·2014-08-22·12:35:30.000000·./usr/lib/python3/dist-packages/pyquery/openers.py9 -rw-r--r--···0·root·········(0)·root·········(0)·····1937·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery/openers.py
11 -rw-r--r--···0·root·········(0)·root·········(0)····44811·2014-08-22·12:35:30.000000·./usr/lib/python3/dist-packages/pyquery/pyquery.py10 -rw-r--r--···0·root·········(0)·root·········(0)····53687·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery/pyquery.py
12 -rw-r--r--···0·root·········(0)·root·········(0)·····1037·2014-08-22·12:35:30.000000·./usr/lib/python3/dist-packages/pyquery/rules.py11 -rw-r--r--···0·root·········(0)·root·········(0)·····3390·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery/text.py
13 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/12 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/
14 -rw-r--r--···0·root·········(0)·root·········(0)·····7097·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/PKG-INFO13 -rw-r--r--···0·root·········(0)·root·········(0)····11102·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/PKG-INFO
15 -rw-r--r--···0·root·········(0)·root·········(0)········1·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/dependency_links.txt14 -rw-r--r--···0·root·········(0)·root·········(0)········1·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/dependency_links.txt
16 -rw-r--r--···0·root·········(0)·root·········(0)·······37·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/entry_points.txt15 -rw-r--r--···0·root·········(0)·root·········(0)·······37·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/entry_points.txt
17 -rw-r--r--···0·root·········(0)·root·········(0)········1·2014-08-22·12:35:30.000000·./usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/not-zip-safe16 -rw-r--r--···0·root·········(0)·root·········(0)········1·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/not-zip-safe
18 -rw-r--r--···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/requires.txt17 -rw-r--r--···0·root·········(0)·root·········(0)·······49·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/requires.txt
19 -rw-r--r--···0·root·········(0)·root·········(0)········8·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/top_level.txt18 -rw-r--r--···0·root·········(0)·root·········(0)········8·2020-09-24·06:55:53.000000·./usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/top_level.txt
20 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/share/19 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/share/
21 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/share/doc/20 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/share/doc/
22 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/share/doc/python3-pyquery/21 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2020-09-24·06:55:53.000000·./usr/share/doc/python3-pyquery/
23 -rw-r--r--···0·root·········(0)·root·········(0)·····1988·2014-08-22·12:35:30.000000·./usr/share/doc/python3-pyquery/README.rst22 -rw-r--r--···0·root·········(0)·root·········(0)·····2414·2020-09-24·06:55:53.000000·./usr/share/doc/python3-pyquery/README.rst
24 -rw-r--r--···0·root·········(0)·root·········(0)·····1583·2020-09-24·06:55:53.000000·./usr/share/doc/python3-pyquery/changelog.Debian.gz23 -rw-r--r--···0·root·········(0)·root·········(0)·····1612·2020-09-24·06:55:53.000000·./usr/share/doc/python3-pyquery/changelog.Debian.gz
25 -rw-r--r--···0·root·········(0)·root·········(0)·····1318·2014-08-22·12:35:30.000000·./usr/share/doc/python3-pyquery/changelog.gz24 -rw-r--r--···0·root·········(0)·root·········(0)·····2228·2020-09-24·06:55:53.000000·./usr/share/doc/python3-pyquery/changelog.gz
26 -rw-r--r--···0·root·········(0)·root·········(0)·····1972·2020-09-24·06:55:53.000000·./usr/share/doc/python3-pyquery/copyright25 -rw-r--r--···0·root·········(0)·root·········(0)·····1972·2020-09-24·06:55:53.000000·./usr/share/doc/python3-pyquery/copyright
444 B
./usr/lib/python3/dist-packages/pyquery/__init__.py
    
Offset 1, 14 lines modifiedOffset 1, 5 lines modified
1 #-*-·coding:utf-8·-*- 
2 # 
3 #·Copyright·(C)·2008·-·Olivier·Lauzanne·<olauzanne@gmail.com>1 #·Copyright·(C)·2008·-·Olivier·Lauzanne·<olauzanne@gmail.com>
4 #2 #
5 #·Distributed·under·the·BSD·license,·see·LICENSE.txt3 #·Distributed·under·the·BSD·license,·see·LICENSE.txt
  
6 try: 
7 ····import·webob 
8 ····import·restkit 
9 except·ImportError: 
10 ····from·.pyquery·import·PyQuery4 from·.pyquery·import·PyQuery··#·NOQA
11 else: 
12 ····from·.ajax·import·PyQuery 
  
5.16 KB
./usr/lib/python3/dist-packages/pyquery/cssselectpatch.py
    
Offset 1, 9 lines modifiedOffset 1, 7 lines modified
1 #-*-·coding:utf-8·-*- 
2 # 
3 #·Copyright·(C)·2008·-·Olivier·Lauzanne·<olauzanne@gmail.com>1 #·Copyright·(C)·2008·-·Olivier·Lauzanne·<olauzanne@gmail.com>
4 #2 #
5 #·Distributed·under·the·BSD·license,·see·LICENSE.txt3 #·Distributed·under·the·BSD·license,·see·LICENSE.txt
6 from·__future__·import·unicode_literals4 from·__future__·import·unicode_literals
7 from·cssselect·import·xpath·as·cssselect_xpath5 from·cssselect·import·xpath·as·cssselect_xpath
8 from·cssselect.xpath·import·ExpressionError6 from·cssselect.xpath·import·ExpressionError
  
Offset 123, 38 lines modifiedOffset 121, 58 lines modified
123 ············[<option>]121 ············[<option>]
  
124 ········..122 ········..
125 ········"""123 ········"""
126 ········xpath.add_condition("@selected·and·name(.)·=·'option'")124 ········xpath.add_condition("@selected·and·name(.)·=·'option'")
127 ········return·xpath125 ········return·xpath
  
 126 ····def·_format_disabled_xpath(self,·disabled=True):
 127 ········"""Format·XPath·condition·for·:disabled·or·:enabled·pseudo-classes
 128 ········according·to·the·WHATWG·spec.·See:·https://html.spec.whatwg.org
 129 ········/multipage/semantics-other.html#concept-element-disabled
 130 ········"""
 131 ········bool_op·=·''·if·disabled·else·'not'
 132 ········return·'''(
 133 ············((name(.)·=·'button'·or·name(.)·=·'input'·or·name(.)·=·'select'
 134 ····················or·name(.)·=·'textarea'·or·name(.)·=·'fieldset')
 135 ················and·%s(@disabled·or·(ancestor::fieldset[@disabled]
 136 ····················and·not(ancestor::legend[not(preceding-sibling::legend)])))
 137 ············)
 138 ············or
 139 ············((name(.)·=·'option'
 140 ················and·%s(@disabled·or·ancestor::optgroup[@disabled]))
 141 ············)
 142 ············or
 143 ············((name(.)·=·'optgroup'·and·%s(@disabled)))
 144 ············)'''·%·(bool_op,·bool_op,·bool_op)
  
128 ····def·xpath_disabled_pseudo(self,·xpath):145 ····def·xpath_disabled_pseudo(self,·xpath):
129 ········"""Matches·all·elements·that·are·disabled::146 ········"""Matches·all·elements·that·are·disabled::
  
130 ············>>>·from·pyquery·import·PyQuery147 ············>>>·from·pyquery·import·PyQuery
131 ············>>>·d·=·PyQuery('<div><input·disabled="disabled"/></div>')148 ············>>>·d·=·PyQuery('<div><input·disabled="disabled"/></div>')
132 ············>>>·d('input:disabled')149 ············>>>·d('input:disabled')
133 ············[<input>]150 ············[<input>]
  
134 ········..151 ········..
135 ········"""152 ········"""
136 ········xpath.add_condition("@disabled")153 ········xpath.add_condition(self._format_disabled_xpath())
137 ········return·xpath154 ········return·xpath
  
138 ····def·xpath_enabled_pseudo(self,·xpath):155 ····def·xpath_enabled_pseudo(self,·xpath):
139 ········"""Matches·all·elements·that·are·enabled::156 ········"""Matches·all·elements·that·are·enabled::
  
140 ············>>>·from·pyquery·import·PyQuery157 ············>>>·from·pyquery·import·PyQuery
141 ············>>>·d·=·PyQuery('<div><input·value="foo"·/></div>')158 ············>>>·d·=·PyQuery('<div><input·value="foo"·/></div>')
142 ············>>>·d('input:enabled')159 ············>>>·d('input:enabled')
143 ············[<input>]160 ············[<input>]
  
144 ········..161 ········..
145 ········"""162 ········"""
146 ········xpath.add_condition("not(@disabled)·and·name(.)·=·'input'")163 ········xpath.add_condition(self._format_disabled_xpath(disabled=False))
147 ········return·xpath164 ········return·xpath
  
148 ····def·xpath_file_pseudo(self,·xpath):165 ····def·xpath_file_pseudo(self,·xpath):
149 ········"""Matches·all·input·elements·of·type·file::166 ········"""Matches·all·input·elements·of·type·file::
  
150 ············>>>·from·pyquery·import·PyQuery167 ············>>>·from·pyquery·import·PyQuery
151 ············>>>·d·=·PyQuery('<div><input·type="file"/></div>')168 ············>>>·d·=·PyQuery('<div><input·type="file"/></div>')
Offset 333, 19 lines modifiedOffset 351, 19 lines modified
  
333 ····def·xpath_empty_pseudo(self,·xpath):351 ····def·xpath_empty_pseudo(self,·xpath):
334 ········"""Match·all·elements·that·do·not·contain·other·elements::352 ········"""Match·all·elements·that·do·not·contain·other·elements::
  
335 ············>>>·from·pyquery·import·PyQuery353 ············>>>·from·pyquery·import·PyQuery
336 ············>>>·d·=·PyQuery('<div><h1><span>title</span></h1><h2/></div>')354 ············>>>·d·=·PyQuery('<div><h1><span>title</span></h1><h2/></div>')
337 ············>>>·d(':empty')355 ············>>>·d(':empty')
338 ············[<span>,·<h2>]356 ············[<h2>]
  
339 ········..357 ········..
340 ········"""358 ········"""
341 ········xpath.add_condition("count(child::*)·=·0")359 ········xpath.add_condition("not(node())")
342 ········return·xpath360 ········return·xpath
  
343 ····def·xpath_eq_function(self,·xpath,·function):361 ····def·xpath_eq_function(self,·xpath,·function):
344 ········"""Matches·a·single·element·by·its·index::362 ········"""Matches·a·single·element·by·its·index::
  
345 ············>>>·from·pyquery·import·PyQuery363 ············>>>·from·pyquery·import·PyQuery
346 ············>>>·d·=·PyQuery('<div><h1·class="first"/><h1·class="last"/></div>')364 ············>>>·d·=·PyQuery('<div><h1·class="first"/><h1·class="last"/></div>')
Offset 402, 20 lines modifiedOffset 420, 47 lines modified
402 ········return·xpath420 ········return·xpath
  
403 ····def·xpath_contains_function(self,·xpath,·function):421 ····def·xpath_contains_function(self,·xpath,·function):
404 ········"""Matches·all·elements·that·contain·the·given·text422 ········"""Matches·all·elements·that·contain·the·given·text
  
405 ············>>>·from·pyquery·import·PyQuery423 ············>>>·from·pyquery·import·PyQuery
406 ············>>>·d·=·PyQuery('<div><h1/><h1·class="title">title</h1></div>')424 ············>>>·d·=·PyQuery('<div><h1/><h1·class="title">title</h1></div>')
407 ············>>>·d(':contains("title")')425 ············>>>·d('h1:contains("title")')
408 ············[<h1.title>]426 ············[<h1.title>]
  
409 ········..427 ········..
410 ········"""428 ········"""
411 ········if·function.argument_types()·!=·['STRING']:429 ········if·function.argument_types()·not·in·(['STRING'],·['IDENT']):
412 ············raise·ExpressionError(430 ············raise·ExpressionError(
413 ················"Expected·a·single·string·for·:contains(),·got·%r"·%·(431 ················"Expected·a·single·string·or·ident·for·:contains(),·got·%r"·%·(
414 ····················function.arguments,))432 ····················function.arguments,))
  
415 ········value·=·self.xpath_literal(function.arguments[0].value)433 ········value·=·self.xpath_literal(function.arguments[0].value)
416 ········xpath.add_post_condition("contains(text(),·%s)"·%·value)434 ········xpath.add_post_condition('contains(.,·%s)'·%·value)
 435 ········return·xpath
  
 436 ····def·xpath_has_function(self,·xpath,·function):
 437 ········"""Matches·elements·which·contain·at·least·one·element·that·matches
 438 ········the·specified·selector.·https://api.jquery.com/has-selector/
  
 439 ············>>>·from·pyquery·import·PyQuery
 440 ············>>>·d·=·PyQuery('<div·class="foo"><div·class="bar"></div></div>')
 441 ············>>>·d('.foo:has(".baz")')
 442 ············[]
 443 ············>>>·d('.foo:has(".foo")')
 444 ············[]
 445 ············>>>·d('.foo:has(".bar")')
 446 ············[<div.foo>]
 447 ············>>>·d('.foo:has(div)')
 448 ············[<div.foo>]
  
 449 ········..
 450 ········"""
Max diff block lines reached; 0/5169 bytes (0.00%) of diff not shown.
2.44 KB
./usr/lib/python3/dist-packages/pyquery/openers.py
    
Offset 1, 29 lines modifiedOffset 1, 26 lines modified
1 #·-*-·coding:·utf-8·-*-1 #·-*-·coding:·utf-8·-*-
2 import·sys 
  
3 PY3k·=·sys.version_info·>=·(3,) 
  
4 if·PY3k: 
5 ····from·urllib.request·import·urlopen2 from·urllib.request·import·urlopen
6 ····from·urllib.parse·import·urlencode3 from·urllib.parse·import·urlencode
 4 from·urllib.error·import·HTTPError
7 ····basestring·=·(str,·bytes) 
8 else: 
9 ····from·urllib2·import·urlopen··#·NOQA 
10 ····from·urllib·import·urlencode··#·NOQA 
  
11 try:5 try:
12 ····import·requests6 ····import·requests
13 ····HAS_REQUEST·=·True7 ····HAS_REQUEST·=·True
14 except·ImportError:8 except·ImportError:
15 ····HAS_REQUEST·=·False9 ····HAS_REQUEST·=·False
  
 10 DEFAULT_TIMEOUT·=·60
  
 11 basestring·=·(str,·bytes)
  
16 allowed_args·=·(12 allowed_args·=·(
17 ····'auth',·'data',·'headers',·'verify',·'cert',·'config',·'hooks',·'proxies')13 ····'auth',·'data',·'headers',·'verify',
 14 ····'cert',·'config',·'hooks',·'proxies',·'cookies'
 15 )
  
  
18 def·_query(url,·method,·kwargs):16 def·_query(url,·method,·kwargs):
19 ····data·=·None17 ····data·=·None
20 ····if·'data'·in·kwargs:18 ····if·'data'·in·kwargs:
21 ········data·=·kwargs.pop('data')19 ········data·=·kwargs.pop('data')
22 ····if·type(data)·in·(dict,·list,·tuple):20 ····if·type(data)·in·(dict,·list,·tuple):
Offset 34, 39 lines modifiedOffset 31, 47 lines modified
34 ········if·'?'·not·in·url:31 ········if·'?'·not·in·url:
35 ············url·+=·'?'32 ············url·+=·'?'
36 ········elif·url[-1]·not·in·('?',·'&'):33 ········elif·url[-1]·not·in·('?',·'&'):
37 ············url·+=·'&'34 ············url·+=·'&'
38 ········url·+=·data35 ········url·+=·data
39 ········data·=·None36 ········data·=·None
  
40 ····if·data·and·PY3k:37 ····if·data:
41 ········data·=·data.encode('utf-8')38 ········data·=·data.encode('utf-8')
42 ····return·url,·data39 ····return·url,·data
  
  
43 def·_requests(url,·kwargs):40 def·_requests(url,·kwargs):
  
44 ····encoding·=·kwargs.get('encoding')41 ····encoding·=·kwargs.get('encoding')
45 ····method·=·kwargs.get('method',·'get').lower()42 ····method·=·kwargs.get('method',·'get').lower()
 43 ····session·=·kwargs.get('session')
 44 ····if·session:
 45 ········meth·=·getattr(session,·str(method))
 46 ····else:
46 ····meth·=·getattr(requests,·str(method))47 ········meth·=·getattr(requests,·str(method))
47 ····if·method·==·'get':48 ····if·method·==·'get':
48 ········url,·data·=·_query(url,·method,·kwargs)49 ········url,·data·=·_query(url,·method,·kwargs)
49 ····kw·=·{}50 ····kw·=·{}
50 ····for·k·in·allowed_args:51 ····for·k·in·allowed_args:
51 ········if·k·in·kwargs:52 ········if·k·in·kwargs:
52 ············kw[k]·=·kwargs[k]53 ············kw[k]·=·kwargs[k]
53 ····resp·=·meth(url=url,·**kw)54 ····resp·=·meth(url=url,·timeout=kwargs.get('timeout',·DEFAULT_TIMEOUT),·**kw)
 55 ····if·not·(200·<=·resp.status_code·<·300):
 56 ········raise·HTTPError(resp.url,·resp.status_code,
 57 ························resp.reason,·resp.headers,·None)
54 ····if·encoding:58 ····if·encoding:
55 ········resp.encoding·=·encoding59 ········resp.encoding·=·encoding
56 ····html·=·resp.text60 ····html·=·resp.text
57 ····return·html61 ····return·html
  
  
58 def·_urllib(url,·kwargs):62 def·_urllib(url,·kwargs):
59 ····method·=·kwargs.get('method')63 ····method·=·kwargs.get('method')
60 ····url,·data·=·_query(url,·method,·kwargs)64 ····url,·data·=·_query(url,·method,·kwargs)
61 ····return·urlopen(url,·data)65 ····return·urlopen(url,·data,·timeout=kwargs.get('timeout',·DEFAULT_TIMEOUT))
  
  
62 def·url_opener(url,·kwargs):66 def·url_opener(url,·kwargs):
63 ····if·HAS_REQUEST:67 ····if·HAS_REQUEST:
64 ········return·_requests(url,·kwargs)68 ········return·_requests(url,·kwargs)
65 ····return·_urllib(url,·kwargs)69 ····return·_urllib(url,·kwargs)
38.1 KB
./usr/lib/python3/dist-packages/pyquery/pyquery.py
    
Offset 1, 57 lines modifiedOffset 1, 49 lines modified
1 #-*-·coding:utf-8·-*- 
2 # 
3 #·Copyright·(C)·2008·-·Olivier·Lauzanne·<olauzanne@gmail.com>1 #·Copyright·(C)·2008·-·Olivier·Lauzanne·<olauzanne@gmail.com>
4 #2 #
5 #·Distributed·under·the·BSD·license,·see·LICENSE.txt3 #·Distributed·under·the·BSD·license,·see·LICENSE.txt
6 from·.cssselectpatch·import·JQueryTranslator4 from·.cssselectpatch·import·JQueryTranslator
 5 from·collections·import·OrderedDict
 6 from·urllib.parse·import·urlencode
 7 from·urllib.parse·import·urljoin
7 from·.openers·import·url_opener8 from·.openers·import·url_opener
 9 from·.text·import·extract_text
8 from·copy·import·deepcopy10 from·copy·import·deepcopy
9 from·lxml·import·etree11 from·lxml·import·etree
10 import·lxml.html12 import·lxml.html
11 import·inspect13 import·inspect
 14 import·itertools
12 import·types15 import·types
13 import·sys 
  
  
14 PY3k·=·sys.version_info·>=·(3,) 
  
15 if·PY3k: 
16 ····from·urllib.parse·import·urlencode 
17 ····from·urllib.parse·import·urljoin 
18 ····basestring·=·(str,·bytes) 
19 ····unicode·=·str 
20 else: 
21 ····from·urllib·import·urlencode··#·NOQA 
22 ····from·urlparse·import·urljoin··#·NOQA 
  
  
 16 basestring·=·(str,·bytes)
23 def·func_globals(f): 
24 ····return·f.__globals__·if·PY3k·else·f.func_globals 
  
  
25 def·func_code(f): 
26 ····return·f.__code__·if·PY3k·else·f.func_code17 def·getargspec(func):
 18 ····args·=·inspect.signature(func).parameters.values()
 19 ····return·[p.name·for·p·in·args
 20 ············if·p.kind·==·p.POSITIONAL_OR_KEYWORD]
  
  
27 def·with_camel_case_alias(func):21 def·with_camel_case_alias(func):
28 ····"""decorator·for·methods·who·required·a·camelcase·alias"""22 ····"""decorator·for·methods·who·required·a·camelcase·alias"""
29 ····_camel_case_aliases.add(func.__name__)23 ····_camel_case_aliases.add(func.__name__)
30 ····return·func24 ····return·func
  
  
31 _camel_case_aliases·=·set()25 _camel_case_aliases·=·set()
  
  
32 def·build_camel_case_aliases(PyQuery):26 def·build_camel_case_aliases(PyQuery):
33 ····"""add·camelcase·aliases·to·PyQuery"""27 ····"""add·camelcase·aliases·to·PyQuery"""
34 ····for·alias·in·_camel_case_aliases:28 ····for·alias·in·_camel_case_aliases:
35 ········parts·=·list(alias.split('_'))29 ········parts·=·list(alias.split('_'))
36 ········name·=·parts[0]·+·''.join([p.title()·for·p·in·parts[1:]])30 ········name·=·parts[0]·+·''.join([p.title()·for·p·in·parts[1:]])
37 ········func·=·getattr(PyQuery,·alias)31 ········func·=·getattr(PyQuery,·alias)
38 ········f·=·types.FunctionType(func_code(func),·func_globals(func),32 ········f·=·types.FunctionType(func.__code__,·func.__globals__,
39 ·······························name,·inspect.getargspec(func).defaults)33 ·······························name,·func.__defaults__)
40 ········f.__doc__·=·(34 ········f.__doc__·=·(
41 ············'Alias·for·:func:`~pyquery.pyquery.PyQuery.%s`')·%·func.__name__35 ············'Alias·for·:func:`~pyquery.pyquery.PyQuery.%s`')·%·func.__name__
42 ········setattr(PyQuery,·name,·f.__get__(None,·PyQuery))36 ········setattr(PyQuery,·name,·f.__get__(None,·PyQuery))
  
  
43 def·fromstring(context,·parser=None,·custom_parser=None):37 def·fromstring(context,·parser=None,·custom_parser=None):
44 ····"""use·html·parser·if·we·don't·have·clean·xml38 ····"""use·html·parser·if·we·don't·have·clean·xml
Offset 95, 22 lines modifiedOffset 87, 23 lines modified
95 ····elif·result·is·not·None:87 ····elif·result·is·not·None:
96 ········return·[result]88 ········return·[result]
97 ····else:89 ····else:
98 ········return·[]90 ········return·[]
  
  
99 def·callback(func,·*args):91 def·callback(func,·*args):
100 ····return·func(*args[:func_code(func).co_argcount])92 ····return·func(*args[:func.__code__.co_argcount])
  
  
101 class·NoDefault(object):93 class·NoDefault(object):
102 ····def·__repr__(self):94 ····def·__repr__(self):
103 ········"""clean·representation·in·Sphinx"""95 ········"""clean·representation·in·Sphinx"""
104 ········return·'<NoDefault>'96 ········return·'<NoDefault>'
  
  
105 no_default·=·NoDefault()97 no_default·=·NoDefault()
106 del·NoDefault98 del·NoDefault
  
  
107 class·FlexibleElement(object):99 class·FlexibleElement(object):
108 ····"""property·to·allow·a·flexible·api"""100 ····"""property·to·allow·a·flexible·api"""
109 ····def·__init__(self,·pget,·pset=no_default,·pdel=no_default):101 ····def·__init__(self,·pget,·pset=no_default,·pdel=no_default):
Offset 153, 16 lines modifiedOffset 146, 15 lines modified
153 ····def·__init__(self,·*args,·**kwargs):146 ····def·__init__(self,·*args,·**kwargs):
154 ········html·=·None147 ········html·=·None
155 ········elements·=·[]148 ········elements·=·[]
156 ········self._base_url·=·None149 ········self._base_url·=·None
157 ········self.parser·=·kwargs.pop('parser',·None)150 ········self.parser·=·kwargs.pop('parser',·None)
  
158 ········if·(len(args)·>=·1·and151 ········if·(len(args)·>=·1·and
159 ················(not·PY3k·and·isinstance(args[0],·basestring)·or 
160 ················(PY3k·and·isinstance(args[0],·str)))·and152 ················isinstance(args[0],·str)·and
161 ················args[0].split('://',·1)[0]·in·('http',·'https')):153 ················args[0].split('://',·1)[0]·in·('http',·'https')):
162 ············kwargs['url']·=·args[0]154 ············kwargs['url']·=·args[0]
163 ············if·len(args)·>=·2:155 ············if·len(args)·>=·2:
164 ················kwargs['data']·=·args[1]156 ················kwargs['data']·=·args[1]
165 ············args·=·[]157 ············args·=·[]
  
166 ········if·'parent'·in·kwargs:158 ········if·'parent'·in·kwargs:
Offset 175, 15 lines modifiedOffset 167, 15 lines modified
175 ········elif·self.parser·in·('xml',):167 ········elif·self.parser·in·('xml',):
176 ············self._translator·=·self._translator_class(xhtml=True)168 ············self._translator·=·self._translator_class(xhtml=True)
177 ········elif·self._parent·is·not·no_default:169 ········elif·self._parent·is·not·no_default:
178 ············self._translator·=·self._parent._translator170 ············self._translator·=·self._parent._translator
179 ········else:171 ········else:
180 ············self._translator·=·self._translator_class(xhtml=False)172 ············self._translator·=·self._translator_class(xhtml=False)
  
181 ········namespaces·=·kwargs.pop('namespaces',·{})173 ········self.namespaces·=·kwargs.pop('namespaces',·None)
  
182 ········if·kwargs:174 ········if·kwargs:
183 ············#·specific·case·to·get·the·dom175 ············#·specific·case·to·get·the·dom
184 ············if·'filename'·in·kwargs:176 ············if·'filename'·in·kwargs:
185 ················html·=·open(kwargs['filename'])177 ················html·=·open(kwargs['filename'])
186 ············elif·'url'·in·kwargs:178 ············elif·'url'·in·kwargs:
187 ················url·=·kwargs.pop('url')179 ················url·=·kwargs.pop('url')
Offset 199, 15 lines modifiedOffset 191, 15 lines modified
199 ················raise·ValueError('Invalid·keyword·arguments·%s'·%·kwargs)191 ················raise·ValueError('Invalid·keyword·arguments·%s'·%·kwargs)
Max diff block lines reached; 34890/38963 bytes (89.55%) of diff not shown.
1.69 KB
./usr/share/doc/python3-pyquery/README.rst
    
Offset 1, 29 lines modifiedOffset 1, 45 lines modified
1 pyquery:·a·jquery-like·library·for·python1 pyquery:·a·jquery-like·library·for·python
2 =========================================2 =========================================
  
 3 ..·image::·https://travis-ci.org/gawel/pyquery.svg
 4 ···:alt:·Build·Status
 5 ···:target:·https://travis-ci.org/gawel/pyquery
  
3 pyquery·allows·you·to·make·jquery·queries·on·xml·documents.6 pyquery·allows·you·to·make·jquery·queries·on·xml·documents.
4 The·API·is·as·much·as·possible·the·similar·to·jquery.·pyquery·uses·lxml·for·fast7 The·API·is·as·much·as·possible·the·similar·to·jquery.·pyquery·uses·lxml·for·fast
5 xml·and·html·manipulation.8 xml·and·html·manipulation.
  
6 This·is·not·(or·at·least·not·yet)·a·library·to·produce·or·interact·with9 This·is·not·(or·at·least·not·yet)·a·library·to·produce·or·interact·with
7 javascript·code.·I·just·liked·the·jquery·API·and·I·missed·it·in·python·so·I10 javascript·code.·I·just·liked·the·jquery·API·and·I·missed·it·in·python·so·I
8 told·myself·"Hey·let's·make·jquery·in·python".·This·is·the·result.11 told·myself·"Hey·let's·make·jquery·in·python".·This·is·the·result.
  
9 The·`project`_·is·being·actively·developped·on·a·git·repository·on·Github.·I12 The·`project`_·is·being·actively·developped·on·a·git·repository·on·Github.·I
10 have·the·policy·of·giving·push·access·to·anyone·who·wants·it·and·then·to·review13 have·the·policy·of·giving·push·access·to·anyone·who·wants·it·and·then·to·review
11 what·he·does.·So·if·you·want·to·contribute·just·email·me.14 what·they·do.·So·if·you·want·to·contribute·just·email·me.
  
12 Please·report·bugs·on·the·`github15 Please·report·bugs·on·the·`github
13 <https://github.com/gawel/pyquery/issues>`_·issue16 <https://github.com/gawel/pyquery/issues>`_·issue
14 tracker.17 tracker.
  
15 ..·_deliverance:·http://www.gawel.org/weblog/en/2008/12/skinning-with-pyquery-and-deliverance18 ..·_deliverance:·http://www.gawel.org/weblog/en/2008/12/skinning-with-pyquery-and-deliverance
16 ..·_project:·https://github.com/gawel/pyquery/19 ..·_project:·https://github.com/gawel/pyquery/
  
 20 I've·spent·hours·maintaining·this·software,·with·love.
 21 Please·consider·tiping·if·you·like·it:
  
 22 BTC:·1PruQAwByDndFZ7vTeJhyWefAghaZx9RZg
  
 23 ETH:·0xb6418036d8E06c60C4D91c17d72Df6e1e5b15CE6
  
 24 LTC:·LY6CdZcDbxnBX9GFBJ45TqVj8NykBBqsmT
  
 25 ..
 26 ···>>>·(urlopen,·your_url,·path_to_html_file)·=·getfixture('readme_fixt')
  
17 Quickstart27 Quickstart
18 ==========28 ==========
  
19 You·can·use·the·PyQuery·class·to·load·an·xml·document·from·a·string,·a·lxml29 You·can·use·the·PyQuery·class·to·load·an·xml·document·from·a·string,·a·lxml
20 document,·from·a·file·or·from·an·url::30 document,·from·a·file·or·from·an·url::
  
21 ····>>>·from·pyquery·import·PyQuery·as·pq31 ····>>>·from·pyquery·import·PyQuery·as·pq
997 B
./usr/share/doc/python3-pyquery/changelog.Debian.gz
895 B
changelog.Debian
    
Offset 1, 8 lines modifiedOffset 1, 8 lines modified
1 pyquery·(1.2.9-5~jan+unchanged1)·unchanged;·urgency=medium1 pyquery·(1.4.3+git20210309.1.5e32510-1~jan+nus1)·fresh-snapshots;·urgency=medium
  
2 ··[·Debian·Janitor·]2 ··[·Debian·Janitor·]
3 ··*·Bump·debhelper·from·old·9·to·12.3 ··*·Bump·debhelper·from·old·9·to·12.
4 ··*·Set·upstream·metadata·fields:·Bug-Database,·Bug-Submit,·Name,4 ··*·Set·upstream·metadata·fields:·Bug-Database,·Bug-Submit,·Name,
5 ····Repository,·Repository-Browse.5 ····Repository,·Repository-Browse.
  
6 ··[·Ondřej·Nový·]6 ··[·Ondřej·Nový·]
Offset 10, 15 lines modifiedOffset 10, 15 lines modified
10 ····contact·address.10 ····contact·address.
11 ··*·d/control:·Update·Vcs-*·fields·with·new·Debian·Python·Team·Salsa11 ··*·d/control:·Update·Vcs-*·fields·with·new·Debian·Python·Team·Salsa
12 ····layout.12 ····layout.
  
13 ··[·Debian·Janitor·]13 ··[·Debian·Janitor·]
14 ··*·Build·for·debian-janitor·apt·repository.14 ··*·Build·for·debian-janitor·apt·repository.
  
15 ·--·Debian·Janitor·<janitor@jelmer.uk>··Sat,·10·Apr·2021·10:48:24·-000015 ·--·Debian·Janitor·<janitor@jelmer.uk>··Mon,·05·Apr·2021·08:33:40·-0000
  
16 pyquery·(1.2.9-4)·unstable;·urgency=medium16 pyquery·(1.2.9-4)·unstable;·urgency=medium
  
17 ··[·Ondřej·Nový·]17 ··[·Ondřej·Nový·]
18 ··*·Convert·git·repository·from·git-dpm·to·gbp·layout18 ··*·Convert·git·repository·from·git-dpm·to·gbp·layout
19 ··*·Use·debhelper-compat·instead·of·debian/compat.19 ··*·Use·debhelper-compat·instead·of·debian/compat.
  
6.14 KB
./usr/share/doc/python3-pyquery/changelog.gz
6.06 KB
changelog
    
Offset 1, 7 lines modifiedOffset 1, 130 lines modified
 1 1.4.4·(unreleased)
 2 ------------------
  
 3 -·Add·nextUntil·method
  
  
 4 1.4.3·(2020-11-21)
 5 ------------------
  
 6 -·No·longer·use·a·universal·wheel
  
  
 7 1.4.2·(2020-11-21)
 8 ------------------
  
 9 -·Fix·exception·raised·when·calling·`PyQuery("<textarea></textarea>").text()`
  
 10 -·python2·is·no·longer·supported
  
 11 1.4.1·(2019-10-26)
 12 ------------------
  
 13 -·This·is·the·latest·release·with·py2·support
  
 14 -·Remove·py33,·py34·support
  
 15 -·web·scraping·improvements:·default·timeout·and·session·support
  
 16 -·Add·API·methods·to·serialize·form-related·elements·according·to·spec
  
 17 -·Include·HTML·markup·when·querying·textarea·text/value
  
  
 18 1.4.0·(2018-01-11)
 19 ------------------
  
 20 -·Refactoring·of·`.text()`·to·match·firefox·behavior.
  
  
 21 1.3.0·(2017-10-21)
 22 ------------------
  
 23 -·Remove·some·unmaintained·modules:·``pyquery.ajax``·and·``pyquery.rules``
  
 24 -·Code·cleanup.·No·longer·use·ugly·hacks·required·by·python2.6/python3.2.
  
 25 -·Run·tests·with·python3.6·on·CI
  
 26 -·Add·a·``method``·argument·to·``.outer_html()``
  
  
 27 1.2.17·(2016-10-14)
 28 -------------------
  
 29 -·``PyQuery('<input·value="">').val()``·is·``''``
 30 -·``PyQuery('<input>').val()``·is·``''``
  
  
 31 1.2.16·(2016-10-14)
 32 -------------------
  
 33 -·``.attr('value',·'')``·no·longer·removes·the·``value``·attribute
  
 34 -·``<input·type="checkbox">``·without·``value="..."``·have·a·``.val()``·of
 35 ··``'on'``
  
 36 -·``<input·type="radio">``·without·``value="..."``·have·a·``.val()``·of
 37 ··``'on'``
  
 38 -·``<select>``·without·``<option·selected>``·have·the·value·of·their·first
 39 ··``<option>``·(or·``None``·if·there·are·no·options)
  
  
 40 1.2.15·(2016-10-11)
 41 -------------------
  
 42 -·.val()·should·never·raise
  
 43 -·drop·py26·support
  
 44 -·improve·.extend()·by·returning·self
  
  
 45 1.2.14·(2016-10-10)
 46 -------------------
  
 47 -·fix·val()·for·<textarea>·and·<select>,·to·match·jQuery·behavior
  
  
 48 1.2.13·(2016-04-12)
 49 -------------------
  
 50 -·Note·explicit·support·for·Python·3.5
  
 51 1.2.12·(2016-04-12)
 52 -------------------
  
 53 -·make_links_absolute·now·take·care·of·whitespaces
  
 54 -·added·pseudo·selector·:has()
  
 55 -·add·cookies·arguments·as·allowed·arguments·for·requests
  
  
 56 1.2.11·(2016-02-02)
 57 -------------------
  
 58 -·Preserve·namespaces·attribute·on·PyQuery·copies.
  
 59 -·Do·not·raise·an·error·when·the·http·response·code·is·2XX
  
 60 1.2.10·(2016-01-05)
 61 -------------------
  
 62 -·Fixed·#118:·implemented·usage·``lxml.etree.tostring``·within·``outer_html``·method
  
 63 -·Fixed·#117:·Raise·HTTP·Error·if·HTTP·status·code·is·not·equal·to·200
  
 64 -·Fixed·#112:·make_links_absolute·does·not·apply·to·form·actions
  
 65 -·Fixed·#98:·contains·act·like·jQuery
  
  
1 1.2.9·(2014-08-22)66 1.2.9·(2014-08-22)
2 ------------------67 ------------------
  
3 -·Support·for·keyword·arguments·in·PyQuery·custom·functions68 -·Support·for·keyword·arguments·in·PyQuery·custom·functions
Max diff block lines reached; 3458/6184 bytes (55.92%) of diff not shown.
11.5 KB
./usr/lib/python3/dist-packages/pyquery-1.2.9.egg-info/PKG-INFO vs.
./usr/lib/python3/dist-packages/pyquery-1.4.4.dev0.egg-info/PKG-INFO
Files 26% similar despite different names
    
Offset 1, 40 lines modifiedOffset 1, 56 lines modified
1 Metadata-Version:·1.21 Metadata-Version:·2.1
2 Name:·pyquery2 Name:·pyquery
3 Version:·1.2.93 Version:·1.4.4.dev0
4 Summary:·A·jquery-like·library·for·python4 Summary:·A·jquery-like·library·for·python
5 Home-page:·https://github.com/gawel/pyquery5 Home-page:·https://github.com/gawel/pyquery
6 Author:·Olivier·Lauzanne6 Author:·Olivier·Lauzanne
7 Author-email:·olauzanne@gmail.com7 Author-email:·olauzanne@gmail.com
8 Maintainer:·Gael·Pasgrimaud8 Maintainer:·Gael·Pasgrimaud
9 Maintainer-email:·gael@gawel.org9 Maintainer-email:·gael@gawel.org
10 License:·BSD10 License:·BSD
11 Description:·11 Description:·
12 ········pyquery:·a·jquery-like·library·for·python12 ········pyquery:·a·jquery-like·library·for·python
13 ········=========================================13 ········=========================================
14 ········14 ········
 15 ········..·image::·https://travis-ci.org/gawel/pyquery.svg
 16 ···········:alt:·Build·Status
 17 ···········:target:·https://travis-ci.org/gawel/pyquery
 18 ········
15 ········pyquery·allows·you·to·make·jquery·queries·on·xml·documents.19 ········pyquery·allows·you·to·make·jquery·queries·on·xml·documents.
16 ········The·API·is·as·much·as·possible·the·similar·to·jquery.·pyquery·uses·lxml·for·fast20 ········The·API·is·as·much·as·possible·the·similar·to·jquery.·pyquery·uses·lxml·for·fast
17 ········xml·and·html·manipulation.21 ········xml·and·html·manipulation.
18 ········22 ········
19 ········This·is·not·(or·at·least·not·yet)·a·library·to·produce·or·interact·with23 ········This·is·not·(or·at·least·not·yet)·a·library·to·produce·or·interact·with
20 ········javascript·code.·I·just·liked·the·jquery·API·and·I·missed·it·in·python·so·I24 ········javascript·code.·I·just·liked·the·jquery·API·and·I·missed·it·in·python·so·I
21 ········told·myself·"Hey·let's·make·jquery·in·python".·This·is·the·result.25 ········told·myself·"Hey·let's·make·jquery·in·python".·This·is·the·result.
22 ········26 ········
23 ········The·`project`_·is·being·actively·developped·on·a·git·repository·on·Github.·I27 ········The·`project`_·is·being·actively·developped·on·a·git·repository·on·Github.·I
24 ········have·the·policy·of·giving·push·access·to·anyone·who·wants·it·and·then·to·review28 ········have·the·policy·of·giving·push·access·to·anyone·who·wants·it·and·then·to·review
25 ········what·he·does.·So·if·you·want·to·contribute·just·email·me.29 ········what·they·do.·So·if·you·want·to·contribute·just·email·me.
26 ········30 ········
27 ········Please·report·bugs·on·the·`github31 ········Please·report·bugs·on·the·`github
28 ········<https://github.com/gawel/pyquery/issues>`_·issue32 ········<https://github.com/gawel/pyquery/issues>`_·issue
29 ········tracker.33 ········tracker.
30 ········34 ········
31 ········..·_deliverance:·http://www.gawel.org/weblog/en/2008/12/skinning-with-pyquery-and-deliverance35 ········..·_deliverance:·http://www.gawel.org/weblog/en/2008/12/skinning-with-pyquery-and-deliverance
32 ········..·_project:·https://github.com/gawel/pyquery/36 ········..·_project:·https://github.com/gawel/pyquery/
33 ········37 ········
 38 ········I've·spent·hours·maintaining·this·software,·with·love.
 39 ········Please·consider·tiping·if·you·like·it:
 40 ········
 41 ········BTC:·1PruQAwByDndFZ7vTeJhyWefAghaZx9RZg
 42 ········
 43 ········ETH:·0xb6418036d8E06c60C4D91c17d72Df6e1e5b15CE6
 44 ········
 45 ········LTC:·LY6CdZcDbxnBX9GFBJ45TqVj8NykBBqsmT
 46 ········
 47 ········..
 48 ···········>>>·(urlopen,·your_url,·path_to_html_file)·=·getfixture('readme_fixt')
 49 ········
34 ········Quickstart50 ········Quickstart
35 ········==========51 ········==========
36 ········52 ········
37 ········You·can·use·the·PyQuery·class·to·load·an·xml·document·from·a·string,·a·lxml53 ········You·can·use·the·PyQuery·class·to·load·an·xml·document·from·a·string,·a·lxml
38 ········document,·from·a·file·or·from·an·url::54 ········document,·from·a·file·or·from·an·url::
39 ········55 ········
40 ············>>>·from·pyquery·import·PyQuery·as·pq56 ············>>>·from·pyquery·import·PyQuery·as·pq
Offset 71, 14 lines modifiedOffset 87, 137 lines modified
71 ········87 ········
72 ········88 ········
73 ········See·http://pyquery.rtfd.org/·for·the·full·documentation89 ········See·http://pyquery.rtfd.org/·for·the·full·documentation
74 ········90 ········
75 ········News91 ········News
76 ········====92 ········====
77 ········93 ········
 94 ········1.4.4·(unreleased)
 95 ········------------------
 96 ········
 97 ········-·Add·nextUntil·method
 98 ········
 99 ········
 100 ········1.4.3·(2020-11-21)
 101 ········------------------
 102 ········
 103 ········-·No·longer·use·a·universal·wheel
 104 ········
 105 ········
 106 ········1.4.2·(2020-11-21)
 107 ········------------------
 108 ········
 109 ········-·Fix·exception·raised·when·calling·`PyQuery("<textarea></textarea>").text()`
 110 ········
 111 ········-·python2·is·no·longer·supported
 112 ········
 113 ········1.4.1·(2019-10-26)
 114 ········------------------
 115 ········
 116 ········-·This·is·the·latest·release·with·py2·support
 117 ········
 118 ········-·Remove·py33,·py34·support
 119 ········
 120 ········-·web·scraping·improvements:·default·timeout·and·session·support
 121 ········
 122 ········-·Add·API·methods·to·serialize·form-related·elements·according·to·spec
 123 ········
 124 ········-·Include·HTML·markup·when·querying·textarea·text/value
 125 ········
 126 ········
 127 ········1.4.0·(2018-01-11)
 128 ········------------------
 129 ········
 130 ········-·Refactoring·of·`.text()`·to·match·firefox·behavior.
 131 ········
 132 ········
 133 ········1.3.0·(2017-10-21)
 134 ········------------------
 135 ········
 136 ········-·Remove·some·unmaintained·modules:·``pyquery.ajax``·and·``pyquery.rules``
 137 ········
 138 ········-·Code·cleanup.·No·longer·use·ugly·hacks·required·by·python2.6/python3.2.
 139 ········
 140 ········-·Run·tests·with·python3.6·on·CI
 141 ········
 142 ········-·Add·a·``method``·argument·to·``.outer_html()``
 143 ········
 144 ········
 145 ········1.2.17·(2016-10-14)
 146 ········-------------------
 147 ········
 148 ········-·``PyQuery('<input·value="">').val()``·is·``''``
 149 ········-·``PyQuery('<input>').val()``·is·``''``
 150 ········
 151 ········
 152 ········1.2.16·(2016-10-14)
 153 ········-------------------
 154 ········
 155 ········-·``.attr('value',·'')``·no·longer·removes·the·``value``·attribute
 156 ········
Max diff block lines reached; 5432/11559 bytes (46.99%) of diff not shown.