METADATA 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. Metadata-Version: 2.0
  2. Name: pyquery
  3. Version: 1.2.17
  4. Summary: A jquery-like library for python
  5. Home-page: https://github.com/gawel/pyquery
  6. Author: Gael Pasgrimaud
  7. Author-email: gael@gawel.org
  8. License: BSD
  9. Keywords: jquery html xml scraping
  10. Platform: UNKNOWN
  11. Classifier: Intended Audience :: Developers
  12. Classifier: Development Status :: 5 - Production/Stable
  13. Classifier: Programming Language :: Python :: 2.7
  14. Classifier: Programming Language :: Python :: 3
  15. Classifier: Programming Language :: Python :: 3.3
  16. Classifier: Programming Language :: Python :: 3.4
  17. Classifier: Programming Language :: Python :: 3.5
  18. Requires-Dist: cssselect (>0.7.9)
  19. Requires-Dist: lxml (>=2.1)
  20. pyquery: a jquery-like library for python
  21. =========================================
  22. .. image:: https://travis-ci.org/gawel/pyquery.svg
  23. :alt: Build Status
  24. :target: https://travis-ci.org/gawel/pyquery
  25. pyquery allows you to make jquery queries on xml documents.
  26. The API is as much as possible the similar to jquery. pyquery uses lxml for fast
  27. xml and html manipulation.
  28. This is not (or at least not yet) a library to produce or interact with
  29. javascript code. I just liked the jquery API and I missed it in python so I
  30. told myself "Hey let's make jquery in python". This is the result.
  31. The `project`_ is being actively developped on a git repository on Github. I
  32. have the policy of giving push access to anyone who wants it and then to review
  33. what he does. So if you want to contribute just email me.
  34. Please report bugs on the `github
  35. <https://github.com/gawel/pyquery/issues>`_ issue
  36. tracker.
  37. .. _deliverance: http://www.gawel.org/weblog/en/2008/12/skinning-with-pyquery-and-deliverance
  38. .. _project: https://github.com/gawel/pyquery/
  39. Quickstart
  40. ==========
  41. You can use the PyQuery class to load an xml document from a string, a lxml
  42. document, from a file or from an url::
  43. >>> from pyquery import PyQuery as pq
  44. >>> from lxml import etree
  45. >>> import urllib
  46. >>> d = pq("<html></html>")
  47. >>> d = pq(etree.fromstring("<html></html>"))
  48. >>> d = pq(url=your_url)
  49. >>> d = pq(url=your_url,
  50. ... opener=lambda url, **kw: urlopen(url).read())
  51. >>> d = pq(filename=path_to_html_file)
  52. Now d is like the $ in jquery::
  53. >>> d("#hello")
  54. [<p#hello.hello>]
  55. >>> p = d("#hello")
  56. >>> print(p.html())
  57. Hello world !
  58. >>> p.html("you know <a href='http://python.org/'>Python</a> rocks")
  59. [<p#hello.hello>]
  60. >>> print(p.html())
  61. you know <a href="http://python.org/">Python</a> rocks
  62. >>> print(p.text())
  63. you know Python rocks
  64. You can use some of the pseudo classes that are available in jQuery but that
  65. are not standard in css such as :first :last :even :odd :eq :lt :gt :checked
  66. :selected :file::
  67. >>> d('p:first')
  68. [<p#hello.hello>]
  69. See http://pyquery.rtfd.org/ for the full documentation
  70. News
  71. ====
  72. 1.2.17 (2016-10-14)
  73. -------------------
  74. - ``PyQuery('<input value="">').val()`` is ``''``
  75. - ``PyQuery('<input>').val()`` is ``''``
  76. 1.2.16 (2016-10-14)
  77. -------------------
  78. - ``.attr('value', '')`` no longer removes the ``value`` attribute
  79. - ``<input type="checkbox">`` without ``value="..."`` have a ``.val()`` of
  80. ``'on'``
  81. - ``<input type="radio">`` without ``value="..."`` have a ``.val()`` of
  82. ``'on'``
  83. - ``<select>`` without ``<option selected>`` have the value of their first
  84. ``<option>`` (or ``None`` if there are no options)
  85. 1.2.15 (2016-10-11)
  86. -------------------
  87. - .val() should never raise
  88. - drop py26 support
  89. - improve .extend() by returning self
  90. 1.2.14 (2016-10-10)
  91. -------------------
  92. - fix val() for <textarea> and <select>, to match jQuery behavior
  93. 1.2.13 (2016-04-12)
  94. -------------------
  95. - Note explicit support for Python 3.5
  96. 1.2.12 (2016-04-12)
  97. -------------------
  98. - make_links_absolute now take care of whitespaces
  99. - added pseudo selector :has()
  100. - add cookies arguments as allowed arguments for requests
  101. 1.2.11 (2016-02-02)
  102. -------------------
  103. - Preserve namespaces attribute on PyQuery copies.
  104. - Do not raise an error when the http response code is 2XX
  105. 1.2.10 (2016-01-05)
  106. -------------------
  107. - Fixed #118: implemented usage ``lxml.etree.tostring`` within ``outer_html`` method
  108. - Fixed #117: Raise HTTP Error if HTTP status code is not equal to 200
  109. - Fixed #112: make_links_absolute does not apply to form actions
  110. - Fixed #98: contains act like jQuery
  111. 1.2.9 (2014-08-22)
  112. ------------------
  113. - Support for keyword arguments in PyQuery custom functions
  114. - Fixed #78: items must take care or the parent
  115. - Fixed #65 PyQuery.make_links_absolute() no longer creates 'href' attribute
  116. when it isn't there
  117. - Fixed #19. ``is_()`` was broken.
  118. - Fixed #9. ``.replaceWith(PyQuery element)`` raises error
  119. - Remove official python3.2 support (mostly because of 3rd party semi-deps)
  120. 1.2.8 (2013-12-21)
  121. ------------------
  122. - Fixed #22: Open by filename fails when file contains invalid xml
  123. - Bug fix in .remove_class()
  124. 1.2.7 (2013-12-21)
  125. ------------------
  126. - Use pep8 name for methods but keep an alias for camel case method.
  127. Eg: remove_attr and removeAttr works
  128. Fix #57
  129. - .text() now return an empty string instead of None if there is no text node.
  130. Fix #45
  131. - Fixed #23: removeClass adds class attribute to elements which previously
  132. lacked one
  133. 1.2.6 (2013-10-11)
  134. ------------------
  135. - README_fixt.py was not include in the release. Fix #54.
  136. 1.2.5 (2013-10-10)
  137. ------------------
  138. - cssselect compat. See https://github.com/SimonSapin/cssselect/pull/22
  139. - tests improvments. no longer require a eth connection.
  140. - fix #55
  141. 1.2.4
  142. -----
  143. - Moved to github. So a few files are renamed from .txt to .rst
  144. - Added .xhtml_to_html() and .remove_namespaces()
  145. - Use requests to fetch urls (if available)
  146. - Use restkit's proxy instead of Paste (which will die with py3)
  147. - Allow to open https urls
  148. - python2.5 is no longer supported (may work, but tests are broken)
  149. 1.2.3
  150. -----
  151. - Allow to pass this in .filter() callback
  152. - Add .contents() .items()
  153. - Add tox.ini
  154. - Bug fixes: fix #35 #55 #64 #66
  155. 1.2.2
  156. -----
  157. - Fix cssselectpatch to match the newer implementation of cssselect. Fixes issue #62, #52 and #59 (Haoyu Bai)
  158. - Fix issue #37 (Caleb Burns)
  159. 1.2.1
  160. -----
  161. - Allow to use a custom css translator.
  162. - Fix issue 44: case problem with xml documents
  163. 1.2
  164. ---
  165. - PyQuery now uses `cssselect <http://pypi.python.org/pypi/cssselect>`_. See issue 43.
  166. - Fix issue 40: forward .html() extra arguments to ``lxml.etree.tostring``
  167. 1.1.1
  168. -----
  169. - Minor release. Include test file so you can run tests from the tarball.
  170. 1.1
  171. ---
  172. - fix issues 30, 31, 32 - py3 improvements / webob 1.2+ support
  173. 1.0
  174. ---
  175. - fix issues 24
  176. 0.7
  177. ---
  178. - Python 3 compatible
  179. - Add __unicode__ method
  180. - Add root and encoding attribute
  181. - fix issues 19, 20, 22, 23
  182. 0.6.1
  183. ------
  184. - Move README.txt at package root
  185. - Add CHANGES.txt and add it to long_description
  186. 0.6
  187. ----
  188. - Added PyQuery.outerHtml
  189. - Added PyQuery.fn
  190. - Added PyQuery.map
  191. - Change PyQuery.each behavior to reflect jQuery api