mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-08 16:53:23 +00:00
* Drop support for legacy Python 2.7 * Upgrade Python syntax with pyupgrade --py3-plus * Trim testing matrix to remove python2 * re-enable python3.8 in travis as tests that are not allowed to fail * Remove some six * The future is now * Remove Python 2 imports * Add back example, but change py27 to py36 * Remove redundant compat.py * Blacken * Credit hugovk in changelog WIP Updating Sphinx Docs and AutoDoc * Fix AutoDoc and update Sphinx theme to python_doc_theme * Fix #420, autodoc even undocumented (docstring-less) method signatures * Doc theme 'nature'. Add global TOC to doc sidebar * Comment last reference to package six * Changelog is now a consistent format * Yet another documentation fix for links and title hierarchy * Start work on new SVG logo test SVG in README trying to test new SVG logo in README Apply centering Apply readme logo centering Trying to align image Trying random shit trying align right add emoji Large logo has higher priority Change title hierarchy Actually use a H1 Try again try and organise badges revert link back to point at master * updated new take on VCR logo as SVG code * Testing modern logo in docs * Add sanitize for rendering SVG * Switch to alabaster theme * Update vcrpy logo (#503) * Add credit for V4 logo changes. * Add rewind and play animation * Add svg into ReadTheDocs static assets so that it can be hosted so the animations work. * Need to embedd the SVG for ReadTheDocs somewhere so I can get the link to later embed in the README Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Sean Bailey <sean@seanbailey.io>
86 lines
2.4 KiB
ReStructuredText
86 lines
2.4 KiB
ReStructuredText
Installation
|
|
============
|
|
|
|
VCR.py is a package on `PyPI <https://pypi.python.org>`__, so you can install
|
|
with pip::
|
|
|
|
pip install vcrpy
|
|
|
|
Compatibility
|
|
-------------
|
|
|
|
VCR.py supports Python 3.5+, and `pypy <http://pypy.org>`__.
|
|
|
|
The following HTTP libraries are supported:
|
|
|
|
- ``aiohttp``
|
|
- ``boto``
|
|
- ``boto3``
|
|
- ``http.client``
|
|
- ``httplib2``
|
|
- ``requests`` (both 1.x and 2.x versions)
|
|
- ``tornado.httpclient``
|
|
- ``urllib2``
|
|
- ``urllib3``
|
|
|
|
Speed
|
|
-----
|
|
|
|
VCR.py runs about 10x faster when `pyyaml <http://pyyaml.org>`__ can use the
|
|
`libyaml extensions <http://pyyaml.org/wiki/LibYAML>`__. In order for this to
|
|
work, libyaml needs to be available when pyyaml is built. Additionally the flag
|
|
is cached by pip, so you might need to explicitly avoid the cache when
|
|
rebuilding pyyaml.
|
|
|
|
1. Test if pyyaml is built with libyaml. This should work::
|
|
|
|
python -c 'from yaml import CLoader'
|
|
|
|
2. Install libyaml according to your Linux distribution, or using `Homebrew
|
|
<http://mxcl.github.com/homebrew/>`__ on Mac::
|
|
|
|
brew install libyaml # Mac with Homebrew
|
|
apt-get install libyaml-dev # Ubuntu
|
|
dnf install libyaml-devel # Fedora
|
|
|
|
3. Rebuild pyyaml with libyaml::
|
|
|
|
pip uninstall pyyaml
|
|
pip --no-cache-dir install pyyaml
|
|
|
|
Upgrade
|
|
-------
|
|
|
|
New Cassette Format
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
The cassette format has changed in *VCR.py 1.x*, the *VCR.py 0.x*
|
|
cassettes cannot be used with *VCR.py 1.x*. The easiest way to upgrade
|
|
is to simply delete your cassettes and re-record all of them. VCR.py
|
|
also provides a migration script that attempts to upgrade your 0.x
|
|
cassettes to the new 1.x format. To use it, run the following command::
|
|
|
|
python -m vcr.migration PATH
|
|
|
|
The PATH can be either a path to the directory with cassettes or the
|
|
path to a single cassette.
|
|
|
|
*Note*: Back up your cassettes files before migration. The migration
|
|
*should* only modify cassettes using the old 0.x format.
|
|
|
|
New serializer / deserializer API
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
If you made a custom serializer, you will need to update it to match the
|
|
new API in version 1.0.x
|
|
|
|
- Serializers now take dicts and return strings.
|
|
- Deserializers take strings and return dicts (instead of requests,
|
|
responses pair)
|
|
|
|
Ruby VCR compatibility
|
|
----------------------
|
|
|
|
VCR.py does not aim to match the format of the Ruby VCR YAML files.
|
|
Cassettes generated by Ruby's VCR are not compatible with VCR.py.
|