Commit Graph

36 Commits

Author SHA1 Message Date
Victor Stinner
f87b85f808 bpo-21071: struct.Struct.format type is now str (#845) 2017-06-23 15:11:12 +02:00
Victor Stinner
3f2d10132d Issue #29300: Convert _struct module to Argument Clinic
* The struct module now requires contiguous buffers.
* Convert most functions and methods of the _struct module to Argument Clinic
* Use "Py_buffer" type for the "buffer" argument. Argument Clinic is
  responsible to create and release the Py_buffer object.
* Use "PyStructObject *" type for self to avoid explicit conversions.
* Add an unit test on the _struct.Struct.unpack_from() method to test passing
  arguments as keywords.
* Rephrase docstrings.
* Rename "fmt" argument to "format" in docstrings and the documentation.

As a side effect, functions and methods which used METH_VARARGS calling
convention like struct.pack() now use the METH_FASTCALL calling convention
which avoids the creation of temporary tuple to pass positional arguments and
so is faster. For example, struct.pack("i", 1) becomes 1.56x faster (-36%)::

    $ ./python -m perf timeit \
        -s 'import struct; pack=struct.pack' 'pack("i", 1)' \
        --compare-to=../default-ref/python
    Median +- std dev: 119 ns +- 1 ns -> 76.8 ns +- 0.4 ns: 1.56x faster (-36%)
    Significant (t=295.91)

Patch co-written with Serhiy Storchaka.
2017-02-02 12:09:30 +01:00
Yury Selivanov
3479b5f888 Issue #28635: Fix a couple of missing/incorrect versionchanged tags
Patch by Elvis Pranskevichus.
2016-11-10 13:25:26 -05:00
Mark Dickinson
7c4e409d07 Issue #11734: Add support for IEEE 754 half-precision floats to the struct module. Original patch by Eli Stevens. 2016-09-03 17:21:29 +01:00
Terry Jan Reedy
fa089b9b0b Issue #22558: Add remaining doc links to source code for Python-coded modules.
Reformat header above separator line (added if missing) to a common format.
Patch by Yoni Lavi.
2016-06-11 15:02:54 -04:00
Martin Panter
b030991a5f Issue #26535: Correct docs regarding the struct buffer size 2016-04-15 23:03:54 +00:00
Georg Brandl
f30132fdc9 #22613: explain what "buffer" is in the struct documentation (thanks Jacques Ducasse) 2014-10-31 09:46:41 +01:00
Serhiy Storchaka
0e90e99188 Issue #19795: Improved markup of True/False constants. 2013-11-29 12:19:53 +02:00
Serhiy Storchaka
fbc1c26803 Issue #19795: Improved markup of True/False constants. 2013-11-29 12:17:13 +02:00
Antoine Pitrou
9f14681959 Issue #17804: New function `struct.iter_unpack` allows for streaming struct unpacking. 2013-04-27 00:20:04 +02:00
Antoine Pitrou
45d9c91d4b Issue #3163: The struct module gets new format characters 'n' and 'N'
supporting C integer types `ssize_t` and `size_t`, respectively.
2011-10-06 15:27:40 +02:00
Senthil Kumaran
ad3882a2b0 Fix closes Issue11436 - Minor clarification to struct documentation for 's' format character. 2011-07-17 17:29:17 +08:00
Victor Stinner
da9ec995f6 Issue #10783: struct.pack() doesn't encode implicitly unicode to UTF-8
* Replace "bytes" by "bytes object" in struct error messages
 * Document the API change in What's new in Python 3.2
 * Fix test_wave
 * Remove also ugly implicit conversions in test_struct
2010-12-28 13:26:42 +00:00
Senthil Kumaran
916bd38a06 Fixing some sphinx inline directives - detected using `make check`. 2010-10-15 12:55:19 +00:00
Georg Brandl
60203b41b0 Migrate to Sphinx 1.0 C language constructs. 2010-10-06 10:11:56 +00:00
Georg Brandl
93eb42e805 Emphasize role of count for Pascal string. 2010-07-10 10:23:40 +00:00
Mark Dickinson
719e4e3ba5 Merged revisions 82379 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82379 | mark.dickinson | 2010-06-29 21:09:12 +0100 (Tue, 29 Jun 2010) | 1 line

  Issue #1789:  clarify that the 'size' column in struct docs refers to standard size.
........
2010-06-29 20:10:42 +00:00
Mark Dickinson
cb532f13e3 Merged revisions 81992 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81992 | mark.dickinson | 2010-06-15 09:33:03 +0100 (Tue, 15 Jun 2010) | 3 lines

  Issue #8469:  Further clarifications and improvements to struct module
  documentation.  Thanks Mads Kiilerich.
........
2010-06-15 08:42:37 +00:00
Mark Dickinson
cfd56f2dc6 Issue #8469: Reorder struct module sections for clarity; other minor tweaks. 2010-06-12 18:37:54 +00:00
Mark Dickinson
7a70b2c450 Issue #8469: add standard sizes to struct docs table. 2010-06-12 18:20:47 +00:00
Mark Dickinson
fdb99f1563 More struct module docs and docstring tweaks. 2010-06-12 16:30:53 +00:00
Mark Dickinson
6abf1823da Merged revisions 80013-80015 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80013 | mark.dickinson | 2010-04-12 20:25:32 +0100 (Mon, 12 Apr 2010) | 14 lines

  Issue #7355: Various improvements to struct module documentation.

   - note early on that the result of struct.pack includes padding
     bytes by default

   - add examples showing how order of struct fields can affect size
     (due to padding)

   - better headers and references; introduction to format strings

   - integrate packing notes into table

  Many thanks to Meador Inge for the patch.
........
  r80014 | mark.dickinson | 2010-04-12 20:46:20 +0100 (Mon, 12 Apr 2010) | 1 line

  Rewrap some long lines in struct module doc source.
........
  r80015 | mark.dickinson | 2010-04-12 21:38:36 +0100 (Mon, 12 Apr 2010) | 1 line

  More struct doc tweaks.
........
2010-04-12 21:00:59 +00:00
Mark Dickinson
c593577a4a Merged revisions 79674 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r79674 | mark.dickinson | 2010-04-03 15:05:10 +0100 (Sat, 03 Apr 2010) | 3 lines

  Issue #8300:  Let struct.pack use __index__ to convert and pack non-integers.
  Based on a patch by Meador Inge.
........
2010-04-03 15:54:36 +00:00
Andrew M. Kuchling
fbd9d2fb10 Merged revisions 78308 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78308 | andrew.kuchling | 2010-02-22 10:13:17 -0500 (Mon, 22 Feb 2010) | 2 lines

  #6414: clarify description of processor endianness.
  Text by Alexey Shamrin; I changed 'DEC Alpha' to the more relevant 'Intel Itanium'.
........
2010-02-22 15:15:21 +00:00
Georg Brandl
7f01a13e7c Last round of adapting style of documenting argument default values. 2009-09-16 15:58:14 +00:00