Up to [cvs.NetBSD.org] / pkgsrc / www / py-MechanicalSoup
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Fix PLIST after py-setuptools update; bump depends and revision
py-MechanicalSoup: fix wheel name for latest setuptools and depend on it Bump PKGREVISION.
py-*: remove unused tool dependency py-setuptools includes the py-wheel functionality nowadays
*: clean-up after python38 removal
py-MechanicalSoup: Convert to wheel.mk Bump PKGREVISION.
*: latest py-sphinx only support Python 3.9+
py-MechanicalSoup: updated to 1.3.0 Version 1.3 =========== Breaking changes ---------------- * To prevent malicious web servers from reading arbitrary files from the client, files must now be opened explicitly by the user in order to upload their contents in form submission. For example, instead of: browser["upload"] = "/path/to/file" you would now use: browser["upload"] = open("/path/to/file", "rb") This remediates `CVE-2023-34457 <https://github.com/MechanicalSoup/MechanicalSoup/security/advisories/GHSA-x456-3ccm-m6j4>`__. Main changes ------------ * Added support for Python 3.11. * Allow submitting a form with no submit element. This can be achieved by passing ``submit=False`` to ``StatefulBrowser.submit_selected``.
Mass-change BUILD_DEPENDS to TOOL_DEPENDS outside mk/. Almost all uses, if not all of them, are wrong, according to the semantics of BUILD_DEPENDS (packages built for target available for use _by_ tools at build-time) and TOOL_DEPEPNDS (packages built for host available for use _as_ tools at build-time). No change to BUILD_DEPENDS as used correctly inside buildlink3. As proposed on tech-pkg: https://mail-index.netbsd.org/tech-pkg/2023/06/03/msg027632.html
py-MechanicalSoup: updated to 1.2.0 Version 1.2 =========== Main changes * Added support for Python 3.10. * Add support for HTML form-associated elements (i.e. input elements that are associated with a form by a ``form`` attribute, but are not a child element of the form.) Bug fixes * When uploading a file, only the filename is now submitted to the server. Previously, the full file path was being submitted, which exposed more local information than users may have been expecting.
*: bump PKGREVISION for egg.mk users They now have a tool dependency on py-setuptools instead of a DEPENDS
py-MechanicalSoup: Update to 1.1.0 Changes: 1.1.0 ----- - Dropped support for EOL Python versions: 2.7 and 3.5. - Increased minimum version requirement for requests from 2.0 to 2.22.0 and beautifulsoup4 from 4.4 to 4.7. - Use encoding from the HTTP request when no HTML encoding is specified. [#355] - Added the put method to the Browser class. This is a light wrapper around requests.Session.put. [#359] - Don't override Referer headers passed in by the user. [#364] - StatefulBrowser methods follow_link and download_link now support passing a dictionary of keyword arguments to requests, via requests_kwargs. For symmetry, they also support passing Beautiful Soup args in as bs4_kwargs, although any excess **kwargs are sent to Beautiful Soup as well, just as they were previously. [#368]
py-MechanicalSoup: Take maintainership
py-MechanicalSoup: Update to 1.0.0 Changes: 1.0.0 ===== This is the last release that will support Python 2.7. Thanks to the many contributors that made this release possible! Main changes ------------ - Added support for Python 3.8 and 3.9. - StatefulBrowser has new properties page, form, and url, which can be used in place of the methods get_current_page, get_current_form and get_url respectively (e.g. the new x.page is equivalent to x.get_current_page()). These methods may be deprecated in a future release. [#175] - StatefulBrowser.form will raise an AttributeError instead of returning None if no form has been selected yet. Note that StatefulBrowser.get_current_form() still returns None for backward compatibility. Bug fixes --------- - Decompose <select> elements with the same name when adding a new input element to a form. [#297] - The params and data kwargs passed to submit will now properly be forwarded to the underlying request for GET methods (whereas previously params was being overwritten by data). [#343]
www/py-*: fix test dependencies for Python 2.7
py-MechanicalSoup: updated to 0.12.0 Version 0.12 Main changes: * Changes in official python version support: added 3.7 and dropped 3.4. * Added ability to submit a form without updating ``StatefulBrowser`` internal state: ``submit_selected(..., update_state=False)``. This means you get a response from the form submission, but your browser stays on the same page. Useful for handling forms that result in a file download or open a new tab. Bug fixes * Improve handling of form enctype to behave like a real browser. * HTML ``type`` attributes are no longer required to be lowercase. * Form controls with the ``disabled`` attribute will no longer be submitted to improve compliance with the HTML standard. If you were relying on this bug to submit disabled elements, you can still achieve this by deleting the ``disabled`` attribute from the element in the :class:`~mechanicalsoup.Form` object directly. * When a form containing a file input field is submitted without choosing a file, an empty filename & content will be sent just like in a real browser. * ``<option>`` tags without a ``value`` attribute will now use their text as the value. * The optional ``url_regex`` argument to ``follow_link`` and ``download_link`` was fixed so that it is no longer ignored. * Allow duplicate submit elements instead of raising a LinkNotFoundError.
py-MechanicalSoup: updated to 0.11.0 Version 0.11 This release focuses on fixing bugs related to uncommon HTTP/HTML scenarios and on improving the documentation. Bug fixes * Constructing a :class:~mechanicalsoup.Form instance from a bs4.element.Tag whose tag name is not form will now emit a warning, and may be deprecated in the future. * **Breaking Change:** :class:~mechanicalsoup.LinkNotFoundError now derives from Exception instead of BaseException. While this will bring the behavior in line with most people's expectations, it may affect the behavior of your code if you were heavily relying on this implementation detail in your exception handling. * Improve handling of button submit elements. Will now correctly ignore buttons of type button and reset during form submission, since they are not considered to be submit elements. * Do a better job of inferring the content type of a response if the Content-Type header is not provided. * Improve consistency of query string construction between MechanicalSoup and web browsers in edge cases where form elements have duplicate name attributes. This prevents errors in valid use cases, and also makes MechanicalSoup more tolerant of invalid HTML.
py-MechanicalSoup: updated to 0.10.0 Version 0.10 Main changes: Added StatefulBrowser.refresh() to reload the current page with the same request. StatefulBrowser.follow_link, StatefulBrowser.submit_selected() and the new StatefulBrowser.download_link now sets the Referer: HTTP header to the page from which the link is followed. Added method StatefulBrowser.download_link, which will download the contents of a link to a file without changing the state of the browser. The selector argument of Browser.select_form can now be a bs4.element.Tag in addition to a CSS selector. Browser.submit and StatefulBrowser.submit_selected accept a larger number of keyword arguments. Arguments are forwarded to requests.Session.request. Internal changes: StatefulBrowser.choose_submit will now ignore input elements that are missing a name-attribute instead of raising a KeyError. Private methods Browser._build_request and Browser._prepare_request have been replaced by a single method Browser._request.
py-MechanicalSoup: update to 0.8.0 Version 0.8 Main changes: * `Browser` and `StatefulBrowser` can now be configured to raise a `LinkNotFound` exception when encountering a 404 Not Found error. This is activated by passing `raise_on_404=True` to the constructor. It is disabled by default for backward compatibility, but is highly recommanded. * `Browser` now has a `__del__` method that closes the current session when the object is deleted. * A `Link` object can now be passed to `follow_link`. * The user agent can now be customized. The default includes `MechanicalSoup` and its version. * There is now a direct interface to the cookiejar in `*Browser` classes (`(set|get)_cookiejar` methods). * This is the last MechanicalSoup version supporting Python 2.6 and 3.3. Bug fixes: * We used to crash on forms without action="..." fields. * The `choose_submit` method has been fixed, and the `btnName` argument of `StatefulBrowser.submit_selected` is now a shortcut for using `choose_submit`. * Arguments to `open_relative` were not properly forwarded. Internal changes: * The testsuite has been greatly improved. It now uses the pytest API (not only the `pytest` launcher) for more concise code. * The coverage of the testsuite is now measured with codecov.io. The results can be viewed on: https://codecov.io/gh/hickford/MechanicalSoup * We now have a requires.io badge to help us tracking issues with dependencies. The report can be viewed on: https://requires.io/github/hickford/MechanicalSoup/requirements/ * The version number now appears in a single place in the source code.
- Also needs py-requests and py-six, add them to DEPENDS. - Unset USE_LANGUAGES list (no C compiler is needed). - Bump PKGREVISION. Discussed with <wiz>
Import py-MechanicalSoup-0.7.0 as www/py-MechanicalSoup. A Python library for automating interaction with websites. MechanicalSoup automatically stores and sends cookies, follows redirects, and can follow links and submit forms. It doesn't do Javascript.