- Notifications
You must be signed in to change notification settings - Fork320
PycURL - Python interface to libcurl
License
LGPL-2.1, Unknown licenses found
Licenses found
pycurl/pycurl
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
PycURL is a Python interface tolibcurl, the multiprotocol filetransfer library. Similarly to theurllib Python module,PycURL can be used to fetch objects identified by a URL from a Python program.Beyond simple fetches however PycURL exposes most of the functionality oflibcurl, including:
- Speed - libcurl is very fast and PycURL, being a thin wrapper abovelibcurl, is very fast as well. PycURLwas benchmarked to be severaltimes faster thanrequests.
- Features including multiple protocol support, SSL, authentication andproxy options. PycURL supports most of libcurl's callbacks.
- Multi andshare interfaces.
- Sockets used for network operations, permitting integration of PycURLinto the application's I/O loop (e.g., usingTornado).
- Python 3.5-3.10.
- libcurl 7.19.0 or better.
Download source and binary distributions fromPyPI.Binary wheels are now available for 32 and 64 bit Windows versions.
Please seeINSTALL.rst for installation instructions. If installing froma Git checkout, please follow instruction in theGit Checkout sectionof INSTALL.rst.
Documentation for the most recent PycURL release is available onPycURL website.
Documentation for the development version of PycURLis availablehere.
To build documentation from source, runmake docs
.Building documentation requiresSphinx tobe installed, as well as pycurl extension module built as docstrings areextracted from it. Built documentation is stored inbuild/doc
subdirectory.
For support questions please usecurl-and-python mailing list.Mailing list archives are available for your perusal as well.
Although not an official support venue,Stack Overflow has beenpopular with some PycURL users.
Bugs can be reportedvia GitHub. Please use GitHub only for bugreports and direct questions to our mailing list instead.
PycURL comes with an automated test suite. To run the tests, execute:
make test
The suite depends on packagespytest andflask, as well asvsftpd.
Some tests use vsftpd configured to accept anonymous uploads. These testsare not run by default. As configured, vsftpd will allow reads and writes toanything the user running the tests has read and write access. To runvsftpd tests you must explicitly set PYCURL_VSFTPD_PATH variable like so:
# use vsftpd in PATHexport PYCURL_VSFTPD_PATH=vsftpd# specify full path to vsftpdexport PYCURL_VSFTPD_PATH=/usr/local/libexec/vsftpd
The test matrix is a separate framework that runs tests on more esotericconfigurations. It supports:
- Testing against Python 2.4, which bottle does not support.
- Testing against Python compiled without threads, which requires an out ofprocess test server.
- Testing against locally compiled libcurl with arbitrary options.
To use the test matrix, first start the test server from Python 2.5+ byrunning:
python -m tests.appmanager
Then in a different shell, and preferably in a separate user account,run the test matrix:
# run ftp tests, etc.export PYCURL_VSFTPD_PATH=vsftpd# create a new work directory, preferably not under pycurl treemkdir testmatrixcd testmatrix# run the matrix specifying absolute pathpython /path/to/pycurl/tests/matrix.py
The test matrix will download, build and install supported Python versionsand supported libcurl versions, then run pycurl tests against each combination.To see what the combinations are, look intests/matrix.py.
For smaller changes:
- Forkthe repository on Github.
- Create a branch offmaster.
- Make your changes.
- Write a test which shows that the bug was fixed or that the featureworks as expected.
- Send a pull request.
- Check back after 10-15 minutes to see if tests passed on Travis CI.PycURL supports old Python and libcurl releases and their support is testedon Travis.
For larger changes:
- Join themailing list.
- Discuss your proposal on the mailing list.
- When consensus is reached, implement it as described above.
Please contribute binary distributions for your system to thedownloads repository.
Copyright (C) 2001-2008 by Kjetil Jacobsen <kjetilja at gmail.com>Copyright (C) 2001-2008 by Markus F.X.J. Oberhumer <markus at oberhumer.com>Copyright (C) 2013-2022 by Oleg Pudeyev <code at olegp.name>All rights reserved.PycURL is dual licensed under the LGPL and an MIT/X derivative licensebased on the cURL license. A full copy of the LGPL license is includedin the file COPYING-LGPL. A full copy of the MIT/X derivative license isincluded in the file COPYING-MIT. You can redistribute and/or modify PycURLaccording to the terms of either license.
About
PycURL - Python interface to libcurl
Topics
Resources
License
LGPL-2.1, Unknown licenses found
Licenses found
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.