Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Update #1

Closed
wants to merge 15 commits into from
Closed

Initial Update #1

wants to merge 15 commits into from

Conversation

pyup-bot
Copy link

@pyup-bot pyup-bot commented Oct 6, 2016

This is my first visit to this fine repo so I have bundled all updates in a single pull request to make things easier for you to merge.

Close this pull request and delete the branch if you want me to start with single pull requests right away

Here's the executive summary:

Updates

Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.

setproctitle 1.1.8 » 1.1.10 PyPi | Changelog | Repo
gunicorn 18.0 » 19.6.0 PyPi | Homepage
boto 2.15.0 » 2.42.0 PyPi | Changelog | Repo
psutil 1.2.1 » 4.3.1 PyPi | Changelog | Repo | Docs
requests 2.2.1 » 2.11.1 PyPi | Changelog | Homepage
gitpython 0.1.7 » 2.0.8 PyPi | Repo | Docs
docopt 0.6.1 » 0.6.2 PyPi | Homepage
argparse 1.2.1 » 1.4.0 PyPi | Changelog | Repo
fake-factory 0.3.2 » 0.7.2 PyPi | Changelog | Repo
user-agents 0.2.0 » 1.0.1 PyPi | Repo
Flask 0.10.1 » 0.11.1 PyPi | Changelog | Repo
sh 1.09 » 1.11 PyPi | Changelog | Repo
SQLAlchemy 0.8.3 » 1.1.0 PyPi | Homepage
cmd2 0.6.7 » 0.6.9 PyPi | Homepage | Docs
fuzzywuzzy 0.2 » 0.12.0 PyPi | Changelog | Repo

Changelogs

setproctitle 1.1.8 -> 1.1.10

1.1.10


- Fixed building with certain ``prctl.h`` implementations (issue 44).
- Use ``setuptools`` if available (issue 48).




### 1.1.9

  • Fixed build on VC (issues 20, 33).
  • Added MANIFEST.in to the source distribution to help with RPM building
    (issue 30).

psutil 1.2.1 -> 4.3.1

4.3.1

Enhancements

  • 881: "make install" now works also when using a virtual env.

Bug fixes

  • 854: Process.as_dict() raises ValueError if passed an erroneous attrs name.
  • 857: [SunOS] Process cpu_times(), cpu_percent(), threads() amd memory_maps()
    may raise RuntimeError if attempting to query a 64bit process with a 32bit
    python. "Null" values are returned as a fallback.
  • 858: Process.as_dict() should not return memory_info_ex() because it's
    deprecated.
  • 863: [Windows] memory_map truncates addresses above 32 bits
  • 866: [Windows] win_service_iter() and services in general are not able to
    handle unicode service names / descriptions.
  • 869: [Windows] Process.wait() may raise TimeoutExpired with wrong timeout
    unit (ms instead of sec).
  • 870: [Windows] Handle leak inside psutil_get_process_data.

4.3.0

Enhancements

  • 819: [Linux] different speedup improvements:
    Process.ppid() is 20% faster
    Process.status() is 28% faster
    Process.name() is 25% faster
    Process.num_threads is 20% faster on Python 3

Bug fixes

  • 810: [Windows] Windows wheels are incompatible with pip 7.1.2.
  • 812: [NetBSD] fix compilation on NetBSD-5.x.
  • 823: [NetBSD] virtual_memory() raises TypeError on Python 3.
  • 829: [UNIX] psutil.disk_usage() percent field takes root reserved space
    into account.
  • 816: [Windows] fixed net_io_counter() values wrapping after 4.3GB in
    Windows Vista (NT 6.0) and above using 64bit values from newer win APIs.

4.2.0

Enhancements

  • 795: [Windows] new APIs to deal with Windows services: win_service_iter()
    and win_service_get().
  • 800: [Linux] psutil.virtual_memory() returns a new "shared" memory field.
  • 819: [Linux] speedup /proc parsing:
    • Process.ppid() is 20% faster
    • Process.status() is 28% faster
    • Process.name() is 25% faster
    • Process.num_threads is 20% faster on Python 3

Bug fixes

  • 797: [Linux] net_if_stats() may raise OSError for certain NIC cards.
  • 813: Process.as_dict() should ignore extraneous attribute names which gets
    attached to the Process instance.

4.1.0

Enhancements

  • 777: [Linux] Process.open_files() on Linux return 3 new fields: position,
    mode and flags.
  • 779: Process.cpu_times() returns two new fields, 'children_user' and
    'children_system' (always set to 0 on OSX and Windows).
  • 789: [Windows] psutil.cpu_times() return two new fields: "interrupt" and
    "dpc". Same for psutil.cpu_times_percent().
  • 792: new psutil.cpu_stats() function returning number of CPU ctx switches
    interrupts, soft interrupts and syscalls.

Bug fixes

  • 774: [FreeBSD] net_io_counters() dropout is no longer set to 0 if the kernel
    provides it.
  • 776: [Linux] Process.cpu_affinity() may erroneously raise NoSuchProcess.
    (patch by wxwright)
  • 780: [OSX] psutil does not compile with some gcc versions.
  • 786: net_if_addrs() may report incomplete MAC addresses.
  • 788: [NetBSD] virtual_memory()'s buffers and shared values were set to 0.
  • 790: [OSX] psutil won't compile on OSX 10.4.

4.0.0

Enhancements

  • 523: [Linux, FreeBSD] disk_io_counters() return a new "busy_time" field.
  • 660: [Windows] make.bat is smarter in finding alternative VS install
    locations. (patch by mpderbec)
  • 732: Process.environ(). (patch by Frank Benkstein)
  • 753: [Linux, OSX, Windows] Process USS and PSS (Linux) "real" memory stats.
    (patch by Eric Rahm)
  • 755: Process.memory_percent() "memtype" parameter.
  • 758: tests now live in psutil namespace.
  • 760: expose OS constants (psutil.LINUX, psutil.OSX, etc.)
  • 756: [Linux] disk_io_counters() return 2 new fields: read_merged_count and
    write_merged_count.
  • 762: new scripts/procsmem.py script.

Bug fixes

  • 685: [Linux] virtual_memory() provides wrong results on systems with a lot
    of physical memory.
  • 704: [Solaris] psutil does not compile on Solaris sparc.
  • 734: on Python 3 invalid UTF-8 data is not correctly handled for process
    name(), cwd(), exe(), cmdline() and open_files() methods resulting in
    UnicodeDecodeError exceptions. 'surrogateescape' error handler is now
    used as a workaround for replacing the corrupted data.
  • 737: [Windows] when the bitness of psutil and the target process was
    different cmdline() and cwd() could return a wrong result or incorrectly
    report an AccessDenied error.
  • 741: [OpenBSD] psutil does not compile on mips64.
  • 751: [Linux] fixed call to Py_DECREF on possible Null object.
  • 754: [Linux] cmdline() can be wrong in case of zombie process.
  • 759: [Linux] Process.memory_maps() may return paths ending with " (deleted)"
  • 761: [Windows] psutil.boot_time() wraps to 0 after 49 days.
  • 764: [NetBSD] fix compilation on NetBSD-6.x.
  • 766: [Linux] net_connections() can't handle malformed /proc/net/unix file.
  • 767: [Linux] disk_io_counters() may raise ValueError on 2.6 kernels and it's
    broken on 2.4 kernels.
  • 770: [NetBSD] disk_io_counters() metrics didn't update.

3.4.2

Enhancements

  • 728: [Solaris] exposed psutil.PROCFS_PATH constant to change the default
    location of /proc filesystem.

Bug fixes

  • 724: [FreeBSD] psutil.virtual_memory().total is incorrect.
  • 730: [FreeBSD] psutil.virtual_memory() crashes.

3.4.1

Enhancements

  • 557: [NetBSD] added NetBSD support. (contributed by Ryo Onodera and
    Thomas Klausner)
  • 708: [Linux] psutil.net_connections() and Process.connections() on Python 2
    can be up to 3x faster in case of many connections.
    Also psutil.Process.memory_maps() is slightly faster.
  • 718: process_iter() is now thread safe.

Bug fixes

  • 714: [OpenBSD] virtual_memory().cached value was always set to 0.
  • 715: don't crash at import time if cpu_times() fail for some reason.
  • 717: [Linux] Process.open_files fails if deleted files still visible.
  • 722: [Linux] swap_memory() no longer crashes if sin/sout can't be determined
    due to missing /proc/vmstat.
  • 724: [FreeBSD] virtual_memory().total is slightly incorrect.

3.3.0

Enhancements

  • 558: [Linux] exposed psutil.PROCFS_PATH constant to change the default
    location of /proc filesystem.
  • 615: [OpenBSD] added OpenBSD support. (contributed by Landry Breuil)

Bug fixes

  • 692: [UNIX] Process.name() is no longer cached as it may change.

3.2.2

Bug fixes

  • 517: [SunOS] net_io_counters failed to detect network interfaces
    correctly on Solaris 10
  • 541: [FreeBSD] disk_io_counters r/w times were expressed in seconds instead
    of milliseconds. (patch by dasumin)
  • 610: [SunOS] fix build and tests on Solaris 10
  • 623: [Linux] process or system connections raises ValueError if IPv6 is not
    supported by the system.
  • 678: [Linux] can't install psutil due to bug in setup.py.
  • 688: [Windows] compilation fails with MSVC 2015, Python 3.5. (patch by
    Mike Sarahan)

3.2.1

Bug fixes

  • 677: [Linux] can't install psutil due to bug in setup.py.

3.2.0

Enhancements

  • 644: [Windows] added support for CTRL_C_EVENT and CTRL_BREAK_EVENT signals
    to use with Process.send_signal().
  • 648: CI test integration for OSX. (patch by Jeff Tang)
  • 663: [UNIX] net_if_addrs() now returns point-to-point (VPNs) addresses.
  • 655: [Windows] different issues regarding unicode handling were fixed. On
    Python 2 all APIs returning a string will now return an encoded version of it
    by using sys.getfilesystemencoding() codec. The APIs involved are:
    • psutil.net_if_addrs()
    • psutil.net_if_stats()
    • psutil.net_io_counters()
    • psutil.Process.cmdline()
    • psutil.Process.name()
    • psutil.Process.username()
    • psutil.users()

Bug fixes

  • 513: [Linux] fixed integer overflow for RLIM_INFINITY.
  • 641: [Windows] fixed many compilation warnings. (patch by Jeff Tang)
  • 652: [Windows] net_if_addrs() UnicodeDecodeError in case of non-ASCII NIC
    names.
  • 655: [Windows] net_if_stats() UnicodeDecodeError in case of non-ASCII NIC
    names.
  • 659: [Linux] compilation error on Suse 10. (patch by maozguttman)
  • 664: [Linux] compilation error on Alpine Linux. (patch by Bart van Kleef)
  • 670: [Windows] segfgault of net_if_addrs() in case of non-ASCII NIC names.
    (patch by sk6249)
  • 672: [Windows] compilation fails if using Windows SDK v8.0. (patch by
    Steven Winfield)
  • 675: [Linux] net_connections(); UnicodeDecodeError may occur when listing
    UNIX sockets.

3.1.1

Bug fixes

  • 603: [Linux] ionice_set value range is incorrect. (patch by spacewander)
  • 645: [Linux] psutil.cpu_times_percent() may produce negative results.
  • 656: 'from psutil import *' does not work.

3.1.0

Enhancements

Bug fixes

  • 340: [Windows] Process.open_files() no longer hangs. Instead it uses a
    thred which times out and skips the file handle in case it's taking too long
    to be retrieved. (patch by Jeff Tang, PR 597)
  • 627: [Windows] Process.name() no longer raises AccessDenied for pids owned
    by another user.
  • 636: [Windows] Process.memory_info() raise AccessDenied.
  • 637: [UNIX] raise exception if trying to send signal to Process PID 0 as it
    will affect os.getpid()'s process group instead of PID 0.
  • 639: [Linux] Process.cmdline() can be truncated.
  • 640: [Linux] *connections functions may swallow errors and return an
    incomplete list of connnections.
  • 642: repr() of exceptions is incorrect.
  • 653: [Windows] Add inet_ntop function for Windows XP to support IPv6.
  • 641: [Windows] Replace deprecated string functions with safe equivalents.

3.0.1

Bug fixes

  • 632: [Linux] better error message if cannot parse process UNIX connections.
  • 634: [Linux] Proces.cmdline() does not include empty string arguments.
  • 635: [UNIX] crash on module import if 'enum' package is installed on python
    < 3.4.

3.0.0

Enhancements

  • 250: new psutil.net_if_stats() returning NIC statistics (isup, duplex,
    speed, MTU).
  • 376: new psutil.net_if_addrs() returning all NIC addresses a-la ifconfig.
  • 469: on Python >= 3.4 IOPRIO_CLASS_* and *_PRIORITY_CLASS constants
    returned by psutil.Process' ionice() and nice() methods are enums instead of
    plain integers.
  • 581: add .gitignore. (patch by Gabi Davar)
  • 582: connection constants returned by psutil.net_connections() and
    psutil.Process.connections() were turned from int to enums on Python > 3.4.
  • 587: Move native extension into the package.
  • 589: Process.cpu_affinity() accepts any kind of iterable (set, tuple, ...),
    not only lists.
  • 594: all deprecated APIs were removed.
  • 599: [Windows] process name() can now be determined for all processes even
    when running as a limited user.
  • 602: pre-commit GIT hook.
  • 629: enhanced support for py.test and nose test discovery and tests run.
  • 616: [Windows] Add inet_ntop function for Windows XP.

Bug fixes

  • 428: [all UNIXes except Linux] correct handling of zombie processes;
    introduced new ZombieProcess exception class.
  • 512: [BSD] fix segfault in net_connections().
  • 555: [Linux] psutil.users() correctly handles ":0" as an alias for
    "localhost"
  • 579: [Windows] Fixed open_files() for PID>64K.
  • 579: [Windows] fixed many compiler warnings.
  • 585: [FreeBSD] net_connections() may raise KeyError.
  • 586: [FreeBSD] cpu_affinity() segfaults on set in case an invalid CPU
    number is provided.
  • 593: [FreeBSD] Process().memory_maps() segfaults.
  • 606: Process.parent() may swallow NoSuchProcess exceptions.
  • 611: [SunOS] net_io_counters has send and received swapped
  • 614: [Linux]: cpu_count(logical=False) return the number of physical CPUs
    instead of physical cores.
  • 618: [SunOS] swap tests fail on Solaris when run as normal user
  • 628: [Linux] Process.name() truncates process name in case it contains
    spaces or parentheses.

2.2.1

Bug fixes

  • 496: [Linux] fix "ValueError: ambiguos inode with multiple PIDs references"
    (patch by Bruno Binet)

2.2.0

Enhancements

  • 521: drop support for Python 2.4 and 2.5.
  • 553: new examples/pstree.py script.
  • 564: C extension version mismatch in case the user messed up with psutil
    installation or with sys.path is now detected at import time.
  • 568: New examples/pidof.py script.
  • 569: [FreeBSD] add support for process CPU affinity.

Bug fixes

  • 496: [Solaris] can't import psutil.
  • 547: [UNIX] Process.username() may raise KeyError if UID can't be resolved.
  • 551: [Windows] get rid of the unicode hack for net_io_counters() NIC names.
  • 556: [Linux] lots of file handles were left open.
  • 561: [Linux] net_connections() might skip some legitimate UNIX sockets.
    (patch by spacewander)
  • 565: [Windows] use proper encoding for psutil.Process.username() and
    psutil.users(). (patch by Sylvain Mouquet)
  • 567: [Linux] in the alternative implementation of CPU affinity PyList_Append
    and Py_BuildValue return values are not checked.
  • 569: [FreeBSD] fix memory leak in psutil.cpu_count(logical=False).
  • 571: [Linux] Process.open_files() might swallow AccessDenied exceptions and
    return an incomplete list of open files.

2.1.3

  • 536: [Linux]: fix "undefined symbol: CPU_ALLOC" compilation error.

2.1.2

Enhancements

  • 407: project moved from Google Code to Github; code moved from Mercurial
    to Git.
  • 492: use tox to run tests on multiple python versions. (patch by msabramo)
  • 505: [Windows] distribution as wheel packages.
  • 511: new examples/ps.py sample code.

Bug fixes

  • 340: [Windows] Process.get_open_files() no longer hangs. (patch by
    Jeff Tang)
  • 501: [Windows] disk_io_counters() may return negative values.
  • 503: [Linux] in rare conditions Process exe(), open_files() and
    connections() methods can raise OSError(ESRCH) instead of NoSuchProcess.
  • 504: [Linux] can't build RPM packages via setup.py
  • 506: [Linux] python 2.4 support was broken.
  • 522: [Linux] Process.cpu_affinity() might return EINVAL. (patch by David
    Daeschler)
  • 529: [Windows] Process.exe() may raise unhandled WindowsError exception
    for PIDs 0 and 4. (patch by Jeff Tang)
  • 530: [Linux] psutil.disk_io_counters() may crash on old Linux distros
    (< 2.6.5) (patch by Yaolong Huang)
  • 533: [Linux] Process.memory_maps() may raise TypeError on old Linux distros.

2.1.1

Bug fixes

  • 446: [Windows] fix encoding error when using net_io_counters() on Python 3.
    (patch by Szigeti Gabor Niif)
  • 460: [Windows] net_io_counters() wraps after 4G.
  • 491: [Linux] psutil.net_connections() exceptions. (patch by Alexander Grothe)

2.1.0

Enhancements

  • 387: system-wide open connections a-la netstat.

Bug fixes

  • 421: [Solaris] psutil does not compile on SunOS 5.10 (patch by Naveed
    Roudsari)
  • 489: [Linux] psutil.disk_partitions() return an empty list.

2.0.0

Enhancements

  • 424: [Windows] installer for Python 3.X 64 bit.
  • 427: number of logical and physical CPUs (psutil.cpu_count()).
  • 447: psutil.wait_procs() timeout parameter is now optional.
  • 452: make Process instances hashable and usable with set()s.
  • 453: tests on Python < 2.7 require unittest2 module.
  • 459: add a make file for running tests and other repetitive tasks (also
    on Windows).
  • 463: make timeout parameter of cpu_percent* functions default to 0.0 'cause
    it's a common trap to introduce slowdowns.
  • 468: move documentation to readthedocs.com.
  • 477: process cpu_percent() is about 30% faster. (suggested by crusaderky)
  • 478: [Linux] almost all APIs are about 30% faster on Python 3.X.
  • 479: long deprecated psutil.error module is gone; exception classes now
    live in "psutil" namespace only.

Bug fixes

  • 193: psutil.Popen constructor can throw an exception if the spawned process
    terminates quickly.
  • 340: [Windows] process get_open_files() no longer hangs. (patch by
    jtangvahna.net)
  • 443: [Linux] fix a potential overflow issue for Process.set_cpu_affinity()
    on systems with more than 64 CPUs.
  • 448: [Windows] get_children() and ppid() memory leak (patch by Ulrich
    Klank).
  • 457: [POSIX] pid_exists() always returns True for PID 0.
  • 461: namedtuples are not pickle-able.
  • 466: [Linux] process exe improper null bytes handling. (patch by
    Gautam Singh)
  • 470: wait_procs() might not wait. (patch by crusaderky)
  • 471: [Windows] process exe improper unicode handling. (patch by
    alexmroja.net)
  • 473: psutil.Popen.wait() does not set returncode attribute.
  • 474: [Windows] Process.cpu_percent() is no longer capped at 100%.
  • 476: [Linux] encoding error for process name and cmdline.

API changes

For the sake of consistency a lot of psutil APIs have been renamed.
In most cases accessing the old names will work but it will cause a
DeprecationWarning.

  • psutil.* module level constants have being replaced by functions:

    +-----------------------+-------------------------------+
    | Old name | Replacement |
    +=======================+===============================+
    | psutil.NUM_CPUS | psutil.cpu_cpunt() |
    +-----------------------+-------------------------------+
    | psutil.BOOT_TIME | psutil.boot_time() |
    +-----------------------+-------------------------------+
    | psutil.TOTAL_PHYMEM | psutil.virtual_memory().total |
    +-----------------------+-------------------------------+

  • Renamed psutil.* functions:

    +--------------------------+-------------------------------+
    | Old name | Replacement |
    +==========================+===============================+
    | - psutil.get_pid_list() | psutil.pids() |
    +--------------------------+-------------------------------+
    | - psutil.get_users() | psutil.users() |
    +--------------------------+-------------------------------+
    | - psutil.get_boot_time() | psutil.boot_time() |
    +--------------------------+-------------------------------+

  • All psutil.Process get_* methods lost the get_ prefix.
    get_ext_memory_info() renamed to memory_info_ex().
    Assuming "p = psutil.Process()":

    +--------------------------+----------------------+
    | Old name | Replacement |
    +==========================+======================+
    | p.get_children() | p.children() |
    +--------------------------+----------------------+
    | p.get_connections() | p.connections() |
    +--------------------------+----------------------+
    | p.get_cpu_affinity() | p.cpu_affinity() |
    +--------------------------+----------------------+
    | p.get_cpu_percent() | p.cpu_percent() |
    +--------------------------+----------------------+
    | p.get_cpu_times() | p.cpu_times() |
    +--------------------------+----------------------+
    | p.get_ext_memory_info() | p.memory_info_ex() |
    +--------------------------+----------------------+
    | p.get_io_counters() | p.io_counters() |
    +--------------------------+----------------------+
    | p.get_ionice() | p.ionice() |
    +--------------------------+----------------------+
    | p.get_memory_info() | p.memory_info() |
    +--------------------------+----------------------+
    | p.get_memory_maps() | p.memory_maps() |
    +--------------------------+----------------------+
    | p.get_memory_percent() | p.memory_percent() |
    +--------------------------+----------------------+
    | p.get_nice() | p.nice() |
    +--------------------------+----------------------+
    | p.get_num_ctx_switches() | p.num_ctx_switches() |
    +--------------------------+----------------------+
    | p.get_num_fds() | p.num_fds() |
    +--------------------------+----------------------+
    | p.get_num_threads() | p.num_threads() |
    +--------------------------+----------------------+
    | p.get_open_files() | p.open_files() |
    +--------------------------+----------------------+
    | p.get_rlimit() | p.rlimit() |
    +--------------------------+----------------------+
    | p.get_threads() | p.threads() |
    +--------------------------+----------------------+
    | p.getcwd() | p.cwd() |
    +--------------------------+----------------------+

  • All psutil.Process set_* methods lost the set_ prefix.
    Assuming "p = psutil.Process()":

    +----------------------+---------------------------------+
    | Old name | Replacement |
    +======================+=================================+
    | p.set_nice() | p.nice(value) |
    +----------------------+---------------------------------+
    | p.set_ionice() | p.ionice(ioclass, value=None) |
    +----------------------+---------------------------------+
    | p.set_cpu_affinity() | p.cpu_affinity(cpus) |
    +----------------------+---------------------------------+
    | p.set_rlimit() | p.rlimit(resource, limits=None) |
    +----------------------+---------------------------------+

  • Except for 'pid' all psutil.Process class properties have been turned into
    methods. This is the only case which there are no aliases.
    Assuming "p = psutil.Process()":

    +---------------+-----------------+
    | Old name | Replacement |
    +===============+=================+
    | p.name | p.name() |
    +---------------+-----------------+
    | p.parent | p.parent() |
    +---------------+-----------------+
    | p.ppid | p.ppid() |
    +---------------+-----------------+
    | p.exe | p.exe() |
    +---------------+-----------------+
    | p.cmdline | p.cmdline() |
    +---------------+-----------------+
    | p.status | p.status() |
    +---------------+-----------------+
    | p.uids | p.uids() |
    +---------------+-----------------+
    | p.gids | p.gids() |
    +---------------+-----------------+
    | p.username | p.username() |
    +---------------+-----------------+
    | p.create_time | p.create_time() |
    +---------------+-----------------+

  • timeout parameter of cpu_percent* functions defaults to 0.0 instead of 0.1.

  • long deprecated psutil.error module is gone; exception classes now live in
    "psutil" namespace only.

  • Process instances' "retcode" attribute returned by psutil.wait_procs() has
    been renamed to "returncode" for consistency with subprocess.Popen.

requests 2.2.1 -> 2.11.1

2.11.1

+++++++++++++++++++

Bugfixes

  • Fixed a bug when using iter_content with decode_unicode=True for
    streamed bodies would raise AttributeError. This bug was introduced in
    2.11.
  • Strip Content-Type and Transfer-Encoding headers from the header block when
    following a redirect that transforms the verb from POST/PUT to GET.

2.11.0

+++++++++++++++++++

Improvements

  • Added support for the ALL_PROXY environment variable.
  • Reject header values that contain leading whitespace or newline characters to
    reduce risk of header smuggling.

Bugfixes

  • Fixed occasional TypeError when attempting to decode a JSON response that
    occurred in an error case. Now correctly returns a ValueError.
  • Requests would incorrectly ignore a non-CIDR IP address in the NO_PROXY
    environment variables: Requests now treats it as a specific IP.
  • Fixed a bug when sending JSON data that could cause us to encounter obscure
    OpenSSL errors in certain network conditions (yes, really).
  • Added type checks to ensure that iter_content only accepts integers and
    None for chunk sizes.
  • Fixed issue where responses whose body had not been fully consumed would have
    the underlying connection closed but not returned to the connection pool,
    which could cause Requests to hang in situations where the HTTPAdapter
    had been configured to use a blocking connection pool.

Miscellaneous

  • Updated bundled urllib3 to 1.16.
  • Some previous releases accidentally accepted non-strings as acceptable header values. This release does not.

2.10.0

+++++++++++++++++++

New Features

  • SOCKS Proxy Support! (requires PySocks; $ pip install requests[socks])

Miscellaneous

  • Updated bundled urllib3 to 1.15.1.

2.9.2

++++++++++++++++++

Improvements

  • Change built-in CaseInsensitiveDict (used for headers) to use OrderedDict
    as its underlying datastore.

Bugfixes

  • Don't use redirect_cache if allow_redirects=False
  • When passed objects that throw exceptions from tell(), send them via
    chunked transfer encoding instead of failing.
  • Raise a ProxyError for proxy related connection issues.

2.9.1

++++++++++++++++++

Bugfixes

  • Resolve regression introduced in 2.9.0 that made it impossible to send binary
    strings as bodies in Python 3.
  • Fixed errors when calculating cookie expiration dates in certain locales.

Miscellaneous

  • Updated bundled urllib3 to 1.13.1.

2.9.0

++++++++++++++++++

Minor Improvements (Backwards compatible)

  • The verify keyword argument now supports being passed a path to a
    directory of CA certificates, not just a single-file bundle.
  • Warnings are now emitted when sending files opened in text mode.
  • Added the 511 Network Authentication Required status code to the status code
    registry.

Bugfixes

  • For file-like objects that are not seeked to the very beginning, we now
    send the content length for the number of bytes we will actually read, rather
    than the total size of the file, allowing partial file uploads.
  • When uploading file-like objects, if they are empty or have no obvious
    content length we set Transfer-Encoding: chunked rather than
    Content-Length: 0.
  • We correctly receive the response in buffered mode when uploading chunked
    bodies.
  • We now handle being passed a query string as a bytestring on Python 3, by
    decoding it as UTF-8.
  • Sessions are now closed in all cases (exceptional and not) when using the
    functional API rather than leaking and waiting for the garbage collector to
    clean them up.
  • Correctly handle digest auth headers with a malformed qop directive that
    contains no token, by treating it the same as if no qop directive was
    provided at all.
  • Minor performance improvements when removing specific cookies by name.

Miscellaneous

  • Updated urllib3 to 1.13.

2.8.1

++++++++++++++++++

Bugfixes

  • Update certificate bundle to match certifi 2015.9.6.2's weak certificate
    bundle.
  • Fix a bug in 2.8.0 where requests would raise ConnectTimeout instead of
    ConnectionError
  • When using the PreparedRequest flow, requests will now correctly respect the
    json parameter. Broken in 2.8.0.
  • When using the PreparedRequest flow, requests will now correctly handle a
    Unicode-string method name on Python 2. Broken in 2.8.0.

2.8.0

++++++++++++++++++

Minor Improvements (Backwards Compatible)

  • Requests now supports per-host proxies. This allows the proxies
    dictionary to have entries of the form
    {&#39;&lt;scheme&gt;://&lt;hostname&gt;&#39;: &#39;&lt;proxy&gt;&#39;}. Host-specific proxies will be used
    in preference to the previously-supported scheme-specific ones, but the
    previous syntax will continue to work.
  • Response.raise_for_status now prints the URL that failed as part of the
    exception message.
  • requests.utils.get_netrc_auth now takes an raise_errors kwarg,
    defaulting to False. When True, errors parsing .netrc files cause
    exceptions to be thrown.
  • Change to bundled projects import logic to make it easier to unbundle
    requests downstream.
  • Changed the default User-Agent string to avoid leaking data on Linux: now
    contains only the requests version.

Bugfixes

  • The json parameter to post() and friends will now only be used if
    neither data nor files are present, consistent with the
    documentation.
  • We now ignore empty fields in the NO_PROXY environment variable.
  • Fixed problem where httplib.BadStatusLine would get raised if combining
    stream=True with contextlib.closing.
  • Prevented bugs where we would attempt to return the same connection back to
    the connection pool twice when sending a Chunked body.
  • Miscellaneous minor internal changes.
  • Digest Auth support is now thread safe.

Updates

  • Updated urllib3 to 1.12.

2.7.0

++++++++++++++++++

This is the first release that follows our new release process. For more, see
our documentation &lt;http://docs.python-requests.org/en/latest/community/release-process/&gt;_.

Bugfixes

  • Updated urllib3 to 1.10.4, resolving several bugs involving chunked transfer
    encoding and response framing.

2.6.2

++++++++++++++++++

Bugfixes

  • Fix regression where compressed data that was sent as chunked data was not
    properly decompressed. (2561)

2.6.1

++++++++++++++++++

Bugfixes

  • Remove VendorAlias import machinery introduced in v2.5.2.
  • Simplify the PreparedRequest.prepare API: We no longer require the user to
    pass an empty list to the hooks keyword argument. (c.f. 2552)
  • Resolve redirects now receives and forwards all of the original arguments to
    the adapter. (2503)
  • Handle UnicodeDecodeErrors when trying to deal with a unicode URL that
    cannot be encoded in ASCII. (2540)
  • Populate the parsed path of the URI field when performing Digest
    Authentication. (2426)
  • Copy a PreparedRequest's CookieJar more reliably when it is not an instance
    of RequestsCookieJar. (2527)

2.6.0

++++++++++++++++++

Bugfixes

  • CVE-2015-2296: Fix handling of cookies on redirect. Previously a cookie
    without a host value set would use the hostname for the redirected URL
    exposing requests users to session fixation attacks and potentially cookie
    stealing. This was disclosed privately by Matthew Daley of
    BugFuzz &lt;https://bugfuzz.com&gt;_. This affects all versions of requests from
    v2.1.0 to v2.5.3 (inclusive on both ends).
  • Fix error when requests is an install_requires dependency and python setup.py test is run. (2462)
  • Fix error when urllib3 is unbundled and requests continues to use the
    vendored import location.
  • Include fixes to urllib3's header handling.
  • Requests' handling of unvendored dependencies is now more restrictive.

Features and Improvements

  • Support bytearrays when passed as parameters in the files argument.
    (2468)
  • Avoid data duplication when creating a request with str, bytes, or
    bytearray input to the files argument.

2.5.3

++++++++++++++++++

Bugfixes

2.5.2

++++++++++++++++++

Features and Improvements

  • Add sha256 fingerprint support. (shazow/urllib3540_)
  • Improve the performance of headers. (shazow/urllib3544_)

Bugfixes

  • Copy pip's import machinery. When downstream redistributors remove
    requests.packages.urllib3 the import machinery will continue to let those
    same symbols work. Example usage in requests' documentation and 3rd-party
    libraries relying on the vendored copies of urllib3 will work without having
    to fallback to the system urllib3.
  • Attempt to quote parts of the URL on redirect if unquoting and then quoting
    fails. (2356)
  • Fix filename type check for multipart form-data uploads. (2411)
  • Properly handle the case where a server issuing digest authentication
    challenges provides both auth and auth-int qop-values. (2408)
  • Fix a socket leak. (shazow/urllib3549_)
  • Fix multiple Set-Cookie headers properly. (shazow/urllib3534_)
  • Disable the built-in hostname verification. (shazow/urllib3526_)
  • Fix the behaviour of decoding an exhausted stream. (shazow/urllib3535_)

Security

  • Pulled in an updated cacert.pem.
  • Drop RC4 from the default cipher list. (shazow/urllib3551_)

.. _shazow/urllib3551: urllib3/urllib3#551
.. _shazow/urllib3549: urllib3/urllib3#549
.. _shazow/urllib3544: urllib3/urllib3#544
.. _shazow/urllib3540: urllib3/urllib3#540
.. _shazow/urllib3535: urllib3/urllib3#535
.. _shazow/urllib3534: urllib3/urllib3#534
.. _shazow/urllib3526: urllib3/urllib3#526

2.5.1

++++++++++++++++++

Behavioural Changes

  • Only catch HTTPErrors in raise_for_status (2382)

Bugfixes

  • Handle LocationParseError from urllib3 (2344)
  • Handle file-like object filenames that are not strings (2379)
  • Unbreak HTTPDigestAuth handler. Allow new nonces to be negotiated (2389)

2.5.0

++++++++++++++++++

Improvements

  • Allow usage of urllib3's Retry object with HTTPAdapters (2216)
  • The iter_lines method on a response now accepts a delimiter with which
    to split the content (2295)

Behavioural Changes

  • Add deprecation warnings to functions in requests.utils that will be removed
    in 3.0 (2309)
  • Sessions used by the functional API are always closed (2326)
  • Restrict requests to HTTP/1.1 and HTTP/1.0 (stop accepting HTTP/0.9) (2323)

Bugfixes

  • Only parse the URL once (2353)
  • Allow Content-Length header to always be overridden (2332)
  • Properly handle files in HTTPDigestAuth (2333)
  • Cap redirect_cache size to prevent memory abuse (2299)
  • Fix HTTPDigestAuth handling of redirects after authenticating successfully
    (2253)
  • Fix crash with custom method parameter to Session.request (2317)
  • Fix how Link headers are parsed using the regular expression library (2271)

Documentation

  • Add more references for interlinking (2348)
  • Update CSS for theme (2290)
  • Update width of buttons and sidebar (2289)
  • Replace references of Gittip with Gratipay (2282)
  • Add link to changelog in sidebar (2273)

2.4.3

++++++++++++++++++

Bugfixes

  • Unicode URL improvements for Python 2.
  • Re-order JSON param for backwards compat.
  • Automatically defrag authentication schemes from host/pass URIs. (2249 &lt;https://github.com/kennethreitz/requests/issues/2249&gt;_)

2.4.2

++++++++++++++++++

Improvements

  • FINALLY! Add json parameter for uploads! (2258 &lt;https://github.com/kennethreitz/requests/pull/2258&gt;_)
  • Support for bytestring URLs on Python 3.x (2238 &lt;https://github.com/kennethreitz/requests/pull/2238&gt;_)

Bugfixes

  • Avoid getting stuck in a loop (2244 &lt;https://github.com/kennethreitz/requests/pull/2244&gt;_)
  • Multiple calls to iter* fail with unhelpful error. (2240 &lt;https://github.com/kennethreitz/requests/issues/2240&gt;, 2241 &lt;https://github.com/kennethreitz/requests/issues/2241&gt;)

Documentation

  • Correct redirection introduction (2245 &lt;https://github.com/kennethreitz/requests/pull/2245/&gt;_)
  • Added example of how to send multiple files in one request. (2227 &lt;https://github.com/kennethreitz/requests/pull/2227/&gt;_)
  • Clarify how to pass a custom set of CAs (2248 &lt;https://github.com/kennethreitz/requests/pull/2248/&gt;_)

2.4.1

++++++++++++++++++

  • Now has a "security" package extras set, $ pip install requests[security]
  • Requests will now use Certifi if it is available.
  • Capture and re-raise urllib3 ProtocolError
  • Bugfix for responses that attempt to redirect to themselves forever (wtf?).

2.4.0

++++++++++++++++++

Behavioral Changes

  • Connection: keep-alive header is now sent automatically.

Improvements

  • Support for connect timeouts! Timeout now accepts a tuple (connect, read) which is used to set individual connect and read timeouts.
  • Allow copying of PreparedRequests without headers/cookies.
  • Updated bundled urllib3 version.
  • Refactored settings loading from environment -- new Session.merge_environment_settings.
  • Handle socket errors in iter_content.

2.3.0

++++++++++++++++++

API Changes

  • New Response property is_redirect, which is true when the
    library could have processed this response as a redirection (whether
    or not it actually did).
  • The timeout parameter now affects requests with both stream=True and
    stream=False equally.
  • The change in v2.0.0 to mandate explicit proxy schemes has been reverted.
    Proxy schemes now default to http://.
  • The CaseInsensitiveDict used for HTTP headers now behaves like a normal
    dictionary when references as string or viewed in the interpreter.

Bugfixes

  • No longer expose Authorization or Proxy-Authorization headers on redirect.
    Fix CVE-2014-1829 and CVE-2014-1830 respectively.
  • Authorization is re-evaluated each redirect.
  • On redirect, pass url as native strings.
  • Fall-back to autodetected encoding for JSON when Unicode detection fails.
  • Headers set to None on the Session are now correctly not sent.
  • Correctly honor decode_unicode even if it wasn't used earlier in the same
    response.
  • Stop advertising compress as a supported Content-Encoding.
  • The Response.history parameter is now always a list.
  • Many, many urllib3 bugfixes.

argparse 1.2.1 -> 1.4.0

1.4.0


  • make argparse behave for default args aka
    issue 12776, 11839: call argparse type function only once.
  • move to github:ThomasWaldmann/argparse
  • add TW as maintainer / give TW's email
  • add some usecase to README, clarify issue tracking
  • add a note to tox.ini about testing on dead snakes

1.3.0


  • added aliases support (thanks to Roland Kammerer!) + tests for it
  • use tox for testing python >= 2.6
  • tests successfully on 3.4 also (without random hash seed)
  • added argparse.external_lib = True so one can test one is really using /
    testing the external library (and not the builtin one in stdlib of recent
    Pythons)

1.2.2


  • added universal wheel support, built, signed and uploaded with:
    python setup.py sdist bdist_wheel upload --identity="Thomas Waldmann" --sign
  • host the files on pypi

fake-factory 0.3.2 -> 0.7.2

0.6.0


  • Dropped Python 2.6 support

0.5.11


  • Add optional parameter sex to profile and simple_profile. Thanks navyad.
  • Fix whitespace in dk_DK provider last_names/last_name. Thanks iAndriy.
  • Fix utf8 coding issue with address/fi_FI provider. Thanks delneg.
  • ! Latest version to support Python 2.6

0.5.10


  • Fix random_sample_unique. Thanks cecedille1.

0.5.9


  • Add more pt_BR names. Thanks cuducos.
  • Added en_GB names. Thanks jonny5532.
  • Add romanized internet provider for zh_CN.
  • Add fr_CH providers. Thanks gfavre.

0.5.8


  • Improve CLI output and help. Thanks cbaines.
  • Update en_US anmes to be more realistic. Thanks dethpickle.
  • Modify pystr provider to accept a minimum number of characters. Thanks tamarbuta.
  • Add job Provider for zh_TW. Thanks weihanglo.
  • Modify zh_TW phone number for a more valid format. Thanks weihanglo.
  • Reduce the maximum value of start timestamps. Thanks cbaines.
  • Add random_sample and random_sample_unique. Thanks bengolder.

0.5.7


  • Repackage to resolve PyPI issue.

0.5.6


  • Add date handling for datetime functions. Thanks rpkilby.
  • Discern male and female first names in pt_BR. Thanks gabrielusvicente.

0.5.5


  • Specify help text for command line. Thanks cbaines.

0.5.4


  • Expose Provider's random instance. Thank gsingers for the suggestion.
  • Make sure required characters are in the password. Thanks craig552uk.
  • Add internet and job Providers for fa_IR. Thanks hamidfzm.
  • Correct Poland phone numbers. Thanks fizista.
  • Fix brittly tests due to seconds elapsed in-between comparison
  • Allow unicode in emails and domains. Thanks zdelagrange for the report.
  • Use dateutil for computing next_month. Thanks mark-love, rshk.
  • Fix tests module import. Thanks jorti for the report.
  • Handle unexpected length in ean(). Thanks michaelcho.
  • Add internet provider for ja_JP. Thanks massa142.
  • Add Romanized Japanese person name. Thanks massa142.
  • Add tzinfo support to datetime methods. Thanks j0hnsmith.
  • Add an 'office' file extensions category. Thanks j0hnsmith.
  • Generate name according to profile's sex. Thanks Dutcho for the report.
  • Add bs_BA phone number and internet provider. Thanks elahmo.
  • Add a SSN provider for zh_CN. Thanks felixonmars.
  • Differentiate male and female first names in fr_FR locale. Thanks GregoryVds
  • Add Maestro credit card. Thanks anthonylauzon.
  • Add hr_HR localization. Thanks mislavcimpersak.
  • Update de_DE first names. Thanks WarrenFaith and mschoebel.
  • Allow generation of IPv4 and IPv6 network address with valid CIDR. Thanks kdeldycke.
  • Unittest IPv4 and IPv6 address and network generation. Thanks kdeldycke.
  • Add a new provider to generate random binary blob. Thanks kdeldycke.
  • Check that randomly produced language codes are parseable as locale by the
    factory constructor. Thanks kdeldycke.
  • Fix chinese random language code. Thanks kdeldycke.
  • Remove duplicate words from Lorem provider. Thanks jeffwidman.

0.5.3


  • Added company_vat to company fi_FI provider. Thanks kivipe.
  • Seed a Random instance instead of the module. Thanks Amy Hanlon.
  • Fixed en_GB postcodes to be more realistic. Thanks mapleoin for the report.
  • Fixed support for Python 3 in the python provider. Thanks derekjamescurtis.
  • Fixed U.S. SSN generation. Thanks jschaf.
  • Use environment markers for wheels. Thanks RonnyPfannschmidt
  • Fixed Python3 issue in pyiterable and pystruct providers. Thanks derekjamescurtis.
  • Fixed en_GB postcodes to be more realistic. Thanks mapleoin.
  • Fixed and improved performance of credit card number provider. Thanks 0x000.
  • Added Brazilian SSN, aka CPF. Thanks ericchaves.
  • Added female and male names for fa_IR. Thanks afshinrodgar.
  • Fixed issues with Decimal objects as input to geo_coordinate. Thanks davy.
  • Fixed bug for center set to None in geo_coordinate. Thanks davy.
  • Fixed deprecated image URL placeholder services.
  • Fixed provider's example formatting in documentation.
  • Added en_AU provider. Thanks xfxf.

0.5.2


  • Added uuid4 to misc provider. Thanks Jared Culp.
  • Fixed jcb15 and jcb16 in credit_card provider. Thanks Rodrigo Braz.
  • Fixed CVV and CID code generation in credit_card provider. Thanks Kevin Stone.
  • Added --include flag to command line tool. Thanks Flavio Curella.
  • Added country_code to `address`` provider. Thanks elad101 and Tobin Brown.

0.5.1


  • Fixed egg installation. Thanks David R. MacIver, kecaps
  • Updated person names for ru_RU. Thanks mousebaiker.
  • Updated ko_KR locale. Thanks Lee Yeonjae.
  • Fixed installation to install importlib on Python 2.6. Thanks Guillaume Thomas.
  • Improved tests. Thanks Aarni Koskela, kecaps, kaushal.
  • Made Person prefixes/suffixes always return strings. Thanks Aarni Koskela.
  • pl_PL jobs added. Thanks Dariusz Choruży.
  • Added ja_JP provider. Thanks Tatsuji Tsuchiya, Masato Ohba.
  • Localized remaining providers for consistency. Thanks Flavio Curella.
  • List of providers in compiled on runtime and is not hardcoded anymore. Thanks Flavio Curella.
  • Fixed State names in en_US. Thanks Greg Meece.
  • Added time_delta method to date_time provider. Thanks Tobin Brown.
  • Added filename and file extension methods to file provider. Thanks Tobin Brown.
  • Added Finnish ssn (HETU) provider. Thanks kivipe.
  • Fixed person names for pl_PL. Thanks Marek Bleschke.
  • Added sv_SE locale providers. Thanks Tome Cvitan.
  • pt_BR Provider: Added catch_phrase to Company provider and fixed names in Person Provider. Thanks Marcelo Fonseca Tambalo.
  • Added sk_SK localized providers. Thanks viktormaruna.
  • Removed miscelleneous provider. It is superceded by the misc provider.

0.5.0


  • Localized providers
  • Updated ko_KR provider. Thanks Lee Yeonjae.
  • Added pt_PT provider. Thanks João Delgado.
  • Fixed mispellings for en_US company provider. Thanks Greg Meece.
  • Added currency provider. Thanks Wiktor Ślęczka
  • Ensure choice_distribution always uses floats. Thanks Katy Lavallee.
  • Added uk_UA provider. Thanks Cyril Tarasenko.
  • Fixed encoding issues with README, CHANGELOG and setup.py. Thanks Sven-Hendrik Haase.
  • Added Turkish person names and phone number patterns. Thanks Murat Çorlu.
  • Added ne_NP provider. Thanks Sudip Kafle.
  • Added provider for Austrian de_AT. Thanks Bernhard Essl.

0.4.2


  • Fixed setup

0.4.1


  • Added MAC address provider. Thanks Sébastien Béal.
  • Added lt_LT and lv_LV localized providers. Thanks Edgar Gavrik.
  • Added nl_NL localized providers. Thanks LolkeAB, mdxs.
  • Added bg_BG localized providers. Thanks Bret B.
  • Added sl_SI. Thanks to janezkranjc
  • Added distribution feature. Thanks to fcurella
  • Relative date time. Thanks to soobrosa
  • Fixed date_time_ad on 32bit Linux. Thanks mdxs.
  • Fixed domain_word to output slugified strings.

0.4


  • Modified en_US person.py to ouput female and male names. Thanks Adrian Klaver.
  • Added SSN provider for en_US and en_CA. Thanks Scott (milliquet).
  • Added hi_IN localized provider. Thanks Pratik Kabra.
  • Refactoring of command line

Flask 0.10.1 -> 0.11.1

0.11.1


Bugfix release, released on June 7th 2016.

  • Fixed a bug that prevented FLASK_APP=foobar/__init__.py from working. See
    pull request 1872.

0.11


Released on May 29th 2016, codename Absinthe.

  • Added support to serializing top-level arrays to :func:flask.jsonify. This
    introduces a security risk in ancient browsers. See
    :ref:json-security for details.
  • Added before_render_template signal.
  • Added **kwargs to :meth:flask.Test.test_client to support passing
    additional keyword arguments to the constructor of
    :attr:flask.Flask.test_client_class.
  • Added SESSION_REFRESH_EACH_REQUEST config key that controls the
    set-cookie behavior. If set to True a permanent session will be
    refreshed each request and get their lifetime extended, if set to
    False it will only be modified if the session actually modifies.
    Non permanent sessions are not affected by this and will always
    expire if the browser window closes.
  • Made Flask support custom JSON mimetypes for incoming data.
  • Added support for returning tuples in the form (response, headers)
    from a view function.
  • Added :meth:flask.Config.from_json.
  • Added :attr:flask.Flask.config_class.
  • Added :meth:flask.Config.get_namespace.
  • Templates are no longer automatically reloaded outside of debug mode. This
    can be configured with the new TEMPLATES_AUTO_RELOAD config key.
  • Added a workaround for a limitation in Python 3.3's namespace loader.
  • Added support for explicit root paths when using Python 3.3's namespace
    packages.
  • Added :command:flask and the flask.cli module to start the local
    debug server through the click CLI system. This is recommended over the old
    flask.run() method as it works faster and more reliable due to a
    different design and also replaces Flask-Script.
  • Error handlers that match specific classes are now checked first,
    thereby allowing catching exceptions that are subclasses of HTTP
    exceptions (in werkzeug.exceptions). This makes it possible
    for an extension author to create exceptions that will by default
    result in the HTTP error of their choosing, but may be caught with
    a custom error handler if desired.
  • Added :meth:flask.Config.from_mapping.
  • Flask will now log by default even if debug is disabled. The log format is
    now hardcoded but the default log handling can be disabled through the
    LOGGER_HANDLER_POLICY configuration key.
  • Removed deprecated module functionality.
  • Added the EXPLAIN_TEMPLATE_LOADING config flag which when enabled will
    instruct Flask to explain how it locates templates. This should help
    users debug when the wrong templates are loaded.
  • Enforce blueprint handling in the order they were registered for template
    loading.
  • Ported test suite to py.test.
  • Deprecated request.json in favour of request.get_json().
  • Add "pretty" and "compressed" separators definitions in jsonify() method.
    Reduces JSON response size when JSONIFY_PRETTYPRINT_REGULAR=False by removing
    unnecessary white space included by default after separators.
  • JSON responses are now terminated with a newline character, because it is a
    convention that UNIX text files end with a newline and some clients don't
    deal well when this newline is missing. See
    Add JSONIFY_END_WITH_NEWLINE config variable pallets/flask#1262 -- this came up originally as a
    part of https://github.com/kennethreitz/httpbin/issues/168
  • The automatically provided OPTIONS method is now correctly disabled if
    the user registered an overriding rule with the lowercase-version
    options (issue 1288).
  • flask.json.jsonify now supports the datetime.date type (pull request
    1326).
  • Don't leak exception info of already catched exceptions to context teardown
    handlers (pull request 1393).
  • Allow custom Jinja environment subclasses (pull request 1422).
  • flask.g now has pop() and setdefault methods.
  • Turn on autoescape for flask.templating.render_template_string by default
    (pull request 1515).
  • flask.ext is now deprecated (pull request 1484).
  • send_from_directory now raises BadRequest if the filename is invalid on
    the server OS (pull request 1763).
  • Added the JSONIFY_MIMETYPE configuration variable (pull request 1728).
  • Exceptions during teardown handling will no longer leave bad application
    contexts lingering around.

0.10.2


(bugfix release, release date to be announced)

  • Fixed broken test_appcontext_signals() test case.
  • Raise an :exc:AttributeError in :func:flask.helpers.find_package with a
    useful message explaining why it is raised when a PEP 302 import hook is used
    without an is_package() method.
  • Fixed an issue causing exceptions raised before entering a request or app
    context to be passed to teardown handlers.
  • Fixed an issue with query parameters getting removed from requests in
    the test client when absolute URLs were requested.
  • Made before_first_request into a decorator as intended.
  • Fixed an etags bug when sending a file streams with a name.
  • Fixed send_from_directory not expanding to the application root path
    correctly.
  • Changed logic of before first request handlers to flip the flag after
    invoking. This will allow some uses that are potentially dangerous but
    should probably be permitted.
  • Fixed Python 3 bug when a handler from app.url_build_error_handlers
    reraises the BuildError.

sh 1.09 -> 1.11

1.10

  • partially applied functions with functools.partial have been fixed for _out and _err callbacks 160
  • _out or _err being callables no longer puts the running command in the background. to achieve the previous behavior, pass _bg=True to your command.
  • deprecated _with contexts 195
  • _timeout_signal allows you to specify your own signal to kill a timed-out process with. use a constant from the signal stdlib module. 171
  • signal exceptions can now be caught by number or name. SignalException_9 == SignalException_SIGKILL
  • child processes that timeout via _timeout raise sh.TimeoutException instead of sh.SignalExeception_9 172
  • fixed help(sh) from the python shell and pydoc sh from the command line. 173
  • program names can no longer be shadowed by names that sh.py defines internally. removed the requirement of trailing underscores for programs that could have their names shadowed, like id.
  • memory optimization when a child process's stdin is a newline-delimted string and our bufsize is newlines
  • feature, _done special keyword argument that accepts a callback to be called when the command completes successfully 185
  • bugfix for being unable to print a baked command in python3+ 176
  • bugfix for cwd not existing and causing the child process to continue running parent process code 202
  • child process is now guaranteed to exit on exception between fork and exec.
  • fix python2 deprecation warning when running with -3 PR 165
  • bugfix where sh.py was attempting to execute directories 196, PR 189
  • only backgrounded processes will ignore SIGHUP
  • allowed ok_code to take a range object. PR 210
  • added sh.args with context which allows overriding of all command defaults for the duration of that context.
  • added sh.pushd with context which takes a directory name and changes to that directory for the duration of that with context. PR 206
  • tests now include python 3.4 if available. tests also stop on the first
    python that suite that fails.
  • SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGPIPE, SIGSYS have been added to the list of signals that throw an exception PR 201
  • "callable" builtin has been faked for python3.1, which lacks it.
  • "direct" option added to _piped special keyword argument, which allows sh to hand off a process's stdout fd directly to another process, instead of buffering its stdout internally, then handing it off. 119

fuzzywuzzy 0.2 -> 0.12.0

0.12.0


  • Declare support for universal wheels. [Thomas Grainger]
  • Clarify that license is GPLv2. [Gareth Tan]

0.11.1


  • Add editorconfig. [Jose Diaz-Gonzalez]
  • Added tox.ini cofig file for easy local multi-environment testing
    changed travis config to use py.test like tox updated use of pep8
    module to pycodestyle. [Pedro Rodrigues]

0.11.0


  • Clean-up. [desmaisons_david]

  • Improving performance. [desmaisons_david]

  • Performance Improvement. [desmaisons_david]

  • Fix link to Levenshtein. [Brian J. McGuirk]

  • Fix readme links. [Brian J. McGuirk]

  • Add license to StringMatcher.py. [Jose Diaz-Gonzalez]

    Closes 113

0.10.0


  • Handle None inputs same as empty string (Issue 94) [Nick Miller]

0.9.0


  • Pull down all keys when updating local copy. [Jose Diaz-Gonzalez]

0.8.2


  • Remove the warning for "slow" sequence matcher on PyPy. [Julian
    Berman]

    where it's preferable to use the pure-python implementation.

0.8.1


  • Minor release changes. [Jose Diaz-Gonzalez]
  • Clean up wiki link in readme. [Ewan Oglethorpe]

0.8.0


  • Refer to Levenshtein distance in readme. Closes 88. [Jose Diaz-
    Gonzalez]

  • Added install step for travis to have pep8 available. [Pedro
    Rodrigues]

  • Added a pep8 test. The way I add the error 501 to the ignore tuple is
    probably wrong but from the docs and source code of pep8 I could not
    find any other way. [Pedro Rodrigues]

    I also went ahead and removed the pep8 call from the release file.

  • Added python 3.5, pypy, and ypyp3 to the travis config file. [Pedro
    Rodrigues]

  • Added another step to the release file to run the tests before
    releasing. [Pedro Rodrigues]

  • Fixed a few pep8 errors Added a verification step in the release
    automation file. This step should probably be somewhere at git level.
    [Pedro Rodrigues]

  • Pep8. [Pedro Rodrigues]

  • Leaving TODOs in the code was never a good idea. [Pedro Rodrigues]

  • Changed return values to be rounded integers. [Pedro Rodrigues]

  • Added a test with the recovered data file. [Pedro Rodrigues]

  • Recovered titledata.csv. [Pedro Rodrigues]

  • Move extract test methods into the process test. [Shale Craig]

    Somehow, they ended up in the RatioTest, despite asserting that the
    ProcessTest works.

0.7.0


  • Use portable syntax for catching exception on tests. [Luis Madrigal]

  • [Fix] test against correct variable. [Luis Madrigal]

  • Add unit tests for validator decorators. [Luis Madrigal]

  • Move validators to decorator functions. [Luis Madrigal]

    This allows easier composition and IMO makes the functions more readable

  • Fix typo: dictionery -> dictionary. [shale]

  • FizzyWuzzy -> FuzzyWuzzy typo correction. [shale]

  • Add check for gitchangelog. [Jose Diaz-Gonzalez]

0.6.2


  • Ensure the rst-lint binary is available. [Jose Diaz-Gonzalez]

0.6.1


  • Minor whitespace changes for PEP8. [Jose Diaz-Gonzalez]

0.6.0


  • Added link to a java port. [Andriy Burkov]

  • Patched "name 'unicode' is not defined" python3. [Carlos Garay]

    Not python3 compliant seatgeek/fuzzywuzzy#80

  • Make process.extract accept {dict, list}-like choices. [Nathan
    Typanski]

    Previously, process.extract expected lists or dictionaries, and tested
    this with isinstance() calls. In keeping with the spirit of Python (duck
    typing and all that), this change enables one to use extract() on any
    dict-like object for dict-like results, or any list-like object for
    list-like results.

    So now we can (and, indeed, I've added tests for these uses) call
    extract() on things like:

    • a generator of strings ("any iterable")
    • a UserDict
    • custom user-made classes that "look like" dicts
      (or, really, anything with a .items() method that behaves like a dict)
    • plain old lists and dicts

    The behavior is exactly the same for previous use cases of
    lists-and-dicts.

    This change goes along nicely with PR 68, since those docs suggest
    dict-like behavior is valid, and this change makes that true.

  • Merge conflict. [Adam Cohen]

  • Improve docs for fuzzywuzzy.process. [Nathan Typanski]

    The documentation for this module was dated and sometimes inaccurate.
    This overhauls the docs to accurately describe the current module,
    including detailing optional arguments that were not previously
    explained - e.g., limit argument to extract().

    This change follows the Google Python Style Guide, which may be found
    at:

    <https://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=CommentsComments>

0.5.0


  • FIX: 0.4.0 is released, no need to specify 0.3.1 in README. [Josh
    Warner (Mac)]

  • Fixed a small typo. [Rostislav Semenov]

  • Reset processor and scorer defaults to None with argument
    checking. [foxxyz]

  • Catch generators without lengths. [Jeremiah Lowin]

  • Fixed python3 issue and deprecated assertion method. [foxxyz]

  • Fixed some docstrings, typos, python3 string method compatibility,
    some errors that crept in during rebase. [foxxyz]

  • [mod] The lamdba in extract is not needed. [Olivier Le Thanh Duong]

    [mod] Pass directly the defaults functions in the args

    [mod] itertools.takewhile() can handle empty list just fine no need to test for it

    [mod] Shorten extractOne by removing double if

    [mod] Use a list comprehention in extract()

    [mod] Autopep8 on process.py

    [doc] Document make_type_consistent

    [mod] bad_chars shortened

    [enh] Move regex compilation outside the method, otherwhise we don't get the benefit from it

    [mod] Don't need all the blah just to redefine method from string module

    [mod] Remove unused import

    [mod] Autopep8 on string_processing.py

    [mod] Rewrote asciidammit without recursion to make it more readable

    [mod] Autopep8 on utils.py

    [mod] Remove unused import

    [doc] Add some doc to fuzz.py

    [mod] Move the code to sort string in a separate function

    [doc] Docstrings for WRatio, UWRatio

  • Add note on which package to install. Closes 67. [Jose Diaz-Gonzalez]

0.4.0


  • In extarctBests() and extractOne() use '>=' instead of '>' [Юрий
    Пайков]
  • Fixed python3 issue with SequenceMatcher import. [Юрий Пайков]

0.3.3


  • Fixed issue 59 - "partial" parameter for _token_set() is now
    honored. [Юрий Пайков]

  • Catch generators without lengths. [Jeremiah Lowin]

  • Remove explicit check for lists. [Jeremiah Lowin]

    The logic in process.extract() should support any Python sequence/iterable. The explicit check for lists is unnecessary and limiting (for example, it forces conversion of generators and other iterable classes to lists).

0.3.2


  • Make release command an executable. [Jose Diaz-Gonzalez]
  • Simplify MANIFEST.in. [Jose Diaz-Gonzalez]
  • Add a release script. [Jose Diaz-Gonzalez]
  • Fix readme codeblock. [Jose Diaz-Gonzalez]
  • Minor formatting. [Jose Diaz-Gonzalez]
  • Use version from fuzzywuzzy package. [Jose Diaz-Gonzalez]
  • Set version constant in init.py. [Jose Diaz-Gonzalez]
  • Rename LICENSE to LICENSE.txt. [Jose Diaz-Gonzalez]

0.3.0


  • Test dict input to extractOne() [jamesnunn]

  • Remove whitespace. [jamesnunn]

  • Choices parameter for extract() accepts both dict and list objects.
    [jamesnunn]

  • Enable automated testing with Python 3.4. [Corey Farwell]

  • Fixed typo: lettters -> letters. [Tal Einat]

  • Fixing LICENSE and README's license info. [Dallas Gutauckis]

  • Proper ordered list. [Jeff Paine]

  • Convert README to rst. [Jeff Paine]

  • Add requirements.txt per discussion in 44. [Jeff Paine]

  • Add LICENSE TO MANIFEST.in. [Jeff Paine]

  • Rename tests.py to more common test_fuzzywuzzy.py. [Jeff Paine]

  • Add proper MANIFEST template. [Jeff Paine]

  • Remove MANIFEST file Not meant to be kept in version control. [Jeff
    Paine]

  • Remove unused file. [Jeff Paine]

  • Pep8. [Jeff Paine]

  • Pep8 formatting. [Jeff Paine]

  • Pep8 formatting. [Jeff Paine]

  • Pep8 indentations. [Jeff Paine]

  • Pep8 cleanup. [Jeff Paine]

  • Pep8. [Jeff Paine]

  • Pep8 cleanup. [Jeff Paine]

  • Pep8 cleanup. [Jeff Paine]

  • Pep8 import style. [Jeff Paine]

  • Pep8 import ordering. [Jeff Paine]

  • Pep8 import ordering. [Jeff Paine]

  • Remove unused module. [Jeff Paine]

  • Pep8 import ordering. [Jeff Paine]

  • Remove unused module. [Jeff Paine]

  • Pep8 import ordering. [Jeff Paine]

  • Remove unused imports. [Jeff Paine]

  • Remove unused module. [Jeff Paine]

  • Remove import * where present. [Jeff Paine]

  • Avoid import * [Jeff Paine]

  • Add Travis CI badge. [Jeff Paine]

  • Remove python 2.4, 2.5 from Travis (not supported) [Jeff Paine]

  • Add python 2.4 and 2.5 to Travis. [Jeff Paine]

  • Add all supported python versions to travis. [Jeff Paine]

  • Bump minor version number. [Jeff Paine]

  • Add classifiers for python versions. [Jeff Paine]

  • Added note about python-Levenshtein speedup. Closes 34. [Jose Diaz-
    Gonzalez]

  • Fixed tests on 2.6. [Grigi]

  • Fixed py2.6. [Grigi]

  • Force bad_chars to ascii. [Grigi]

  • Since importing unicode_literals, u decorator not required on strings
    from py2.6 and up. [Grigi]

  • Py3 support without 2to3. [Grigi]

  • Created: Added .travis.yml. [futoase]

  • [enh] Add docstrings to process.py. [Olivier Le Thanh Duong]

    Turn the existings comments into docstrings so they can be seen via introspection

  • Don't condense multiple punctuation characters to a single whitespace.
    this is a behavioral change. [Adam Cohen]

  • UQRatio and UWRatio shorthands. [Adam Cohen]

  • Version 0.2. [Adam Cohen]

  • Unicode/string comparison bug. [Adam Cohen]

  • To maintain backwards compatibility, default is to force_ascii as
    before. [Adam Cohen]

  • Fix merge conflict. [Adam Cohen]

  • New process function: extractBests. [Flávio Juvenal]

  • More readable reverse sorting. [Flávio Juvenal]

  • Further honoring of force_ascii. [Adam Cohen]

  • Indentation fix. [Adam Cohen]

  • Handle force_ascii in fuzz methods. [Adam Cohen]

  • Add back relevant tests. [Adam Cohen]

  • Utility method to make things consistent. [Adam Cohen]

  • Re-commit asciidammit and add a parameter to full_process to determine
    behavior. [Adam Cohen]

  • Added a test for non letters/digits replacements. [Tristan Launay]

  • ENG-741 fixed benchmark line length. [Laurent Erignoux]

  • Fixed Unicode flag for tests. [Tristan Launay]

  • ENG-741 commented code removed not erased for review from creator.
    [Laurent Erignoux]

  • ENG-741 cut long lines in fuzzy wizzy benchmark. [Laurent Erignoux]

  • Re-upped the limit on benchmark, now that performance is not an issue
    anymore. [Tristan Launay]

  • Fixed comment. [Tristan Launay]

  • Simplified processing of strings with built-in regex code in python.
    Also fixed empty string detection in token_sort_ratio. [Tristan
    Launay]

  • Proper benchmark display. Introduce methods to explicitly do all the
    unicode preprocessing before using fuzz lib. [Tristan Launay]

  • ENG-741: having a true benchmark, to see when we improve stuff.
    [Benjamin Combourieu]

  • Unicode support in benchmark.py. [Benjamin Combourieu]

  • Added file for processing strings. [Tristan Launay]

  • Uniform treatment of strings in Unicode. Non-ASCII chars are now
    considered in strings, which allows for matches in Cyrillic, Chinese,
    Greek, etc. [Tristan Launay]

  • Fixed bug in _token_set. [Michael Edward]

  • Removed reference to PR. [Jose Diaz-Gonzalez]

  • Sadist build and virtualenv dirs are not part of the project. [Pedro
    Rodrigues]

  • Fixes Add LICENSE.txt file to official releases seatgeek/fuzzywuzzy#10 and correctly
    points to README.textile. [Pedro Rodrigues]

  • Info on the pull request. [Pedro Rodrigues]

  • Pullstat.us button. [Pedro Rodrigues]

  • Fuzzywuzzy really needs better benchmarks. [Pedro Rodrigues]

  • Moved tests and benchmarks out of the package. [Pedro Rodrigues]

  • Report better ratio()s redundant import try. [Pedro Rodrigues]

  • AssertGreater did not exist in python 2.4. [Pedro Rodrigues]

  • Remove debug output. [Adam Cohen]

  • Looks for python-Levenshtein package, and if present, uses that
    instead of difflib. 10x speedup if present. add benchmarks. [Adam
    Cohen]

  • Add gitignore. [Adam Cohen]

  • Fix a bug in WRatio, as well as an issue in full_process, which was
    failing on strings with all unicode characters. [Adam Cohen]

  • Error in partial_ratio. closes 7. [Adam Cohen]

  • Adding some real-life event data for benchmarking. [Adam Cohen]

  • Cleaned up utils.py. [Pedro Rodrigues]

  • Optimized speed for full_process() [Pedro Rodrigues]

  • Speed improvements to asciidammit. [Pedro Rodrigues]

  • Removed old versions of validate_string() and remove_ponctuation()
    kept from previous commits. [Pedro Rodrigues]

  • Issue 6 from github updated license headers to match MIT license.
    [Pedro Rodrigues]

  • Clean up. [Pedro Rodrigues]

  • Changes to utils.validate_string() and benchmarks. [Pedro Rodrigues]

  • Some benchmarks to test the changes made to remove_punctuation. [Pedro
    Rodrigues]

  • Faster remove_punctuation. [Pedro Rodrigues]

  • AssertIsNone did not exist in Python 2.4. [Pedro Rodrigues]

  • Just adding some simple install instructions for pip. [Chris Dary]

  • Check for null/empty strings in QRatio and WRatio. Add tests. Closes

    1. [Adam Cohen]
  • More README. [Adam Cohen]

  • README. [Adam Cohen]

  • README. [Adam Cohen]

  • Slight change to README. [Adam Cohen]

  • Some readme. [Adam Cohen]

  • Distutils. [Adam Cohen]

  • Change directory structure. [Adam Cohen]

  • Initial commit. [Adam Cohen]

Once you have closed this pull request, I'll create seperate pull requests for every update as soon as I find them.

That's it for now!

Happy merging! 🤖

@suchow suchow closed this Oct 6, 2016
@suchow suchow deleted the pyup-initial-update branch October 6, 2016 03:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add LICENSE.txt file to official releases
2 participants