>>> tuple(itertools.izip_longest([1,2,3], [1,2,3,4,5]))
((1, 1), (2, 2), (3, 3), (None, 4), (None, 5))
product(iter1, iter2, ..., [repeat=N])
returns the Cartesian product of the
supplied iterables, a set of tuples containing every possible combination of the
elements returned from each iterable.
>>> list(itertools.product([1,2,3], [4,5,6]))
[(1, 4), (1, 5), (1, 6),
(2, 4), (2, 5), (2, 6),
(3, 4), (3, 5), (3, 6)]
The optional repeat keyword argument is used for taking the product of an iterable or
a set of iterables with themselves, repeated N times. With a single iterable argument,
N-tuples are returned:
>>> list(itertools.product([1,2], repeat=3))
[(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2),
(2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2)]
With two iterables, 2N-tuples are returned.
>>> list(itertools.product([1,2], [3,4], repeat=2))
[(1, 3, 1, 3), (1, 3, 1, 4), (1, 3, 2, 3), (1, 3, 2, 4),
(1, 4, 1, 3), (1, 4, 1, 4), (1, 4, 2, 3), (1, 4, 2, 4),
(2, 3, 1, 3), (2, 3, 1, 4), (2, 3, 2, 3), (2, 3, 2, 4),
(2, 4, 1, 3), (2, 4, 1, 4), (2, 4, 2, 3), (2, 4, 2, 4)]
combinations(iterable, r)
returns sub-sequences of length r from the elements of
iterable.
>>> list(itertools.combinations('123'2))
[('1', '2'), ('1', '3'), ('2', '3')]
>>> list(itertools.combinations('123'3))
[('1', '2', '3')]
>>> list(itertools.combinations('1234'3))
[('1', '2', '3'), ('1', '2', '4'),
('1', '3', '4'), ('2', '3', '4')]
permutations(iter[, r])
returns all the permutations of length r of the iterable’s
elements. If r is not specified, it will default to the number of elements produced by
the iterable.
>>> list(itertools.permutations([1,2,3,4], 2))
[(1, 2), (1, 3), (1, 4),
(2, 1), (2, 3), (2, 4),
(3, 1), (3, 2), (3, 4),
(4, 1), (4, 2), (4, 3)]
Pdf secure signature - C# PDF Digital Signature Library: add, remove, update PDF digital signatures in C#.net, ASP.NET, MVC, WPF
Help to Improve the Security of Your PDF File by Adding Digital Signatures
copy text from locked pdf; add security to pdf document
Pdf secure signature - VB.NET PDF Digital Signature Library: add, remove, update PDF digital signatures in vb.net, ASP.NET, MVC, WPF
Guide VB.NET Programmers to Improve the Security of Your PDF File by Adding Digital Signatures
add security to pdf in reader; change pdf document security
itertools.chain(*iterables)
is an existing function in 
itertools
that gained a new
constructor in Python 2.6. 
itertools.chain.from_iterable(iterable)
takes a single
iterable that should return other iterables. 
chain()
will then return all the elements of
the first iterable, then all the elements of the second, and so on.
>>> list(itertools.chain.from_iterable([[1,2,3], [4,5,6]]))
[1, 2, 3, 4, 5, 6]
(All contributed by Raymond Hettinger.)
The 
logging
module’s 
FileHandler
class and its subclasses 
WatchedFileHandler
,
RotatingFileHandler
, and 
TimedRotatingFileHandler
now have an optional delay
parameter to their constructors. If delay is true, opening of the log file is deferred
until the first 
emit()
call is made. (Contributed by Vinay Sajip.)
TimedRotatingFileHandler
also has a utc constructor parameter. If the argument is
true, UTC time will be used in determining when midnight occurs and in generating
filenames; otherwise local time will be used.
Several new functions were added to the 
math
module:
isinf()
and 
isnan()
determine whether a given float is a (positive or negative)
infinity or a NaN (Not a Number), respectively.
copysign()
copies the sign bit of an IEEE 754 number, returning the absolute
value of x combined with the sign bit of y. For example, 
math.copysign(1, -
0.0)
returns -1.0. (Contributed by Christian Heimes.)
factorial()
computes the factorial of a number. (Contributed by Raymond
Hettinger; issue 2138.)
fsum()
adds up the stream of numbers from an iterable, and is careful to avoid
loss of precision through using partial sums. (Contributed by Jean Brouwers,
Raymond Hettinger, and Mark Dickinson; issue 2819.)
acosh()
asinh()
and 
atanh()
compute the inverse hyperbolic functions.
log1p()
returns the natural logarithm of 1+x (base e).
trunc()
rounds a number toward zero, returning the closest 
Integral
that’s
between the function’s argument and zero. Added as part of the backport of
PEP 3141’s type hierarchy for numbers.
The 
math
module has been improved to give more consistent behaviour across
platforms, especially with respect to handling of floating-point exceptions and IEEE
754 special values.
Whenever possible, the module follows the recommendations of the C99 standard
XDoc.HTML5 Viewer for .NET, All Mature Features Introductions
to search text-based documents, like PDF, Microsoft Office typing new signature, deleting added signature from the text selecting in order to secure your web
create secure pdf; copy paste encrypted pdf
C# Create PDF Library SDK to convert PDF from other file formats
for C# developers to create a highly-secure and industry What's more, you can also protect created PDF file by adding digital signature (watermark) on PDF
change pdf security settings; decrypt pdf password online
about 754’s special values. For example, 
sqrt(-1.)
should now give a 
ValueError
across almost all platforms, while 
sqrt(float('NaN'))
should return a NaN on all
IEEE 754 platforms. Where Annex ‘F’ of the C99 standard recommends signaling
‘divide-by-zero’ or ‘invalid’, Python will raise 
ValueError
. Where Annex ‘F’ of the C99
standard recommends signaling ‘overflow’, Python will raise 
OverflowError
. (See
issue 711019 and issue 1640.)
(Contributed by Christian Heimes and Mark Dickinson.)
mmap
objects now have a 
rfind()
method that searches for a substring beginning at
the end of the string and searching backwards. The 
find()
method also gained an
end parameter giving an index at which to stop searching. (Contributed by John
Lenton.)
The 
operator
module gained a 
methodcaller()
function that takes a name and an
optional set of arguments, returning a callable that will call the named function on any
arguments passed to it. For example:
>>> # Equivalent to lambda s: s.replace('old', 'new')
>>> replacer = operator.methodcaller('replace''old''new')
>>> replacer('old wine in old bottles')
'new wine in new bottles'
(Contributed by Georg Brandl, after a suggestion by Gregory Petrosyan.)
The 
attrgetter()
function  now  accepts  dotted  names  and  performs  the
corresponding attribute lookups:
>>> inst_name = operator.attrgetter(
...  '__class__.__name__')
>>> inst_name('')
'str'
>>> inst_name(help)
'_Helper'
(Contributed by Georg Brandl, after a suggestion by Barry Warsaw.)
The 
os
module  now  wraps  several  new  system  calls. 
fchmod(fd, mode)
and
fchown(fd, uid, gid)
change the mode and ownership of an opened file, and
lchmod(path, mode)
changes the mode of a symlink. (Contributed by Georg Brandl
and Christian Heimes.)
chflags()
and 
lchflags()
are wrappers for the corresponding system calls (where
they’re available), changing the flags set on a file. Constants for the flag values are
DocImage SDK for .NET: HTML Viewer, View, Annotate, Convert, Print
from popular documents & images in .NET, including Microsoft Word, Excel, PPT, PDF, Tiff, Dicom type(s). Later, you can make an order in our secure online store
advanced pdf encryption remover; decrypt pdf
WinForms .NET Imaging SDK | Royalty-free Image SDK
Support common image and document file format, including BMP, Gif, PNG, PDF, JPEG 2000 our License Agreement and choose a suitable one in our secure online store
create encrypted pdf; secure pdf file
defined in the 
stat
module; some possible values include 
UF_IMMUTABLE
to signal the
file may not be changed and 
UF_APPEND
to indicate that data can only be appended
to the file. (Contributed by M. Levinson.)
os.closerange(low, high)
efficiently closes all file descriptors from low  to high,
ignoring any errors and not including high itself. This function is now used by the
subprocess
module  to  make  starting  processes  faster. (Contributed  by  Georg
Brandl; issue 1663329.)
The 
os.environ
object’s 
clear()
method will now unset the environment variables
using 
os.unsetenv()
in addition to clearing the object’s keys. (Contributed by Martin
Horcicka; issue 1181.)
The 
os.walk()
function now has a 
followlinks
parameter. If set to True, it will
follow symlinks pointing to directories and visit the directory’s contents. For backward
compatibility, the parameter’s default value is false. Note that the function can fall
into an infinite recursion if there’s a symlink that points to a parent directory. (issue
1273829)
In the 
os.path
module, the 
splitext()
function has been changed to not split on
leading period characters. This produces better results when operating on Unix’s dot-
files. For example, 
os.path.splitext('.ipython')
now returns 
('.ipython', '')
instead of 
('', '.ipython')
. (issue 1115886)
A new function, 
os.path.relpath(path, start='.')
, returns a relative path from the
start
path, if it’s supplied, or from the current working directory to the destination
path
. (Contributed by Richard Barran; issue 1339796.)
On Windows, 
os.path.expandvars()
will now expand environment variables given in
the form “%var%”, and “~user” will be expanded into the user’s home directory path.
(Contributed by Josiah Carlson; issue 957650.)
The Python debugger provided by the 
pdb
module gained a new command: “run”
restarts the Python program being debugged and can optionally take new command-
line arguments for the program. (Contributed by Rocky Bernstein; issue 1393667.)
The 
pdb.post_mortem()
function, used to begin debugging a traceback, will now use
the traceback returned by 
sys.exc_info()
if no traceback is supplied. (Contributed
by Facundo Batista; issue 1106316.)
The 
pickletools
module  now  has  an 
optimize()
function that takes a string
containing a pickle and removes some unused opcodes, returning a shorter pickle
Java Imaging SDK Library: Document Image Scan, Process, PDF
View, edit, re-order, clean-up and convert documents/image from PDF, Tiff, Png Read our license Agreement and choose a suitable one in our secure online store!
pdf password unlock; pdf file security
.NET DICOM SDK | DICOM Image Viewing
Developed based on the latest DICOM specification, RasterEdge DICOM codec provides complete DICOM Data Sets, secure communication and more.
decrypt pdf file; pdf encryption
that contains the same data structure. (Contributed by Raymond Hettinger.)
get_data()
function was added to the 
pkgutil
module that returns the contents of
resource files included with an installed Python package. For example:
>>> import pkgutil
>>> print pkgutil.get_data('test''exception_hierarchy.txt')
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- StandardError
...
(Contributed by Paul Moore; issue 2439.)
The 
pyexpat
module’s 
Parser
objects now allow setting their 
buffer_size
attribute to
change the size of the buffer used to hold character data. (Contributed by Achim
Gaedke; issue 1137.)
The 
Queue
module now provides queue variants that retrieve entries in different
orders. The 
PriorityQueue
class stores queued items in a heap and retrieves them
in  priority  order,  and 
LifoQueue
retrieves the most recently added entries first,
meaning that it behaves like a stack. (Contributed by Raymond Hettinger.)
The 
random
module’s 
Random
objects can now be pickled on a 32-bit system and
unpickled on a 64-bit system, and vice versa. Unfortunately, this change also means
that Python 2.6’s 
Random
objects can’t be unpickled correctly on earlier versions of
Python. (Contributed by Shawn Ligocki; issue 1727780.)
The new 
triangular(low, high, mode)
function returns random numbers following a
triangular distribution. The returned values are between low and high, not including
high itself, and with mode as the most frequently occurring value in the distribution.
(Contributed by Wladmir van der Laan and Raymond Hettinger; issue 1681432.)
Long regular expression searches carried out by the 
re
module will check for signals
being delivered, so time-consuming searches can now be interrupted. (Contributed
by Josh Hoyt and Ralf Schmitt; issue 846388.)
The regular expression module is implemented by compiling bytecodes for a tiny
regex-specific  virtual  machine. Untrusted code could create malicious strings of
bytecode directly and cause crashes, so Python 2.6 includes a verifier for the regex
bytecode. (Contributed by Guido van Rossum from work for Google App Engine;
PDF Image Viewer| What is PDF
information; Royalty-free to develop PDF compatible software; Open standard for more secure, dependable electronic information exchange.
convert locked pdf to word online; decrypt password protected pdf
DICOM Image Viewer| What is DICOM
SDK and Web Document Viewer provide high-quality, full-featured and secure medical image into other file formats, including Bitmap, Png, Gif, Tiff, PDF, MS-Word
pdf security password; convert locked pdf to word
issue 3487.)
The 
rlcompleter
module’s 
Completer.complete()
method will now ignore exceptions
triggered while evaluating a name. (Fixed by Lorenz Quack; issue 2250.)
The 
sched
module’s 
scheduler
instances now have a read-only 
queue
attribute that
returns the contents of the scheduler’s queue, represented as a list of named tuples
with  the  fields 
(time, priority, action, argument)
. (Contributed by Raymond
Hettinger; issue 1861.)
The 
select
module now has wrapper functions for the Linux 
epoll()
and BSD
kqueue()
system calls. 
modify()
method was added to the existing 
poll
objects;
pollobj.modify(fd, eventmask)
takes a file descriptor or file object and an event
mask, modifying the recorded event mask for that file. (Contributed by Christian
Heimes; issue 1657.)
The 
shutil.copytree()
function now has an optional ignore argument that takes a
callable  object. This callable  will receive each directory  path and a list  of the
directory’s contents, and returns a list of names that will be ignored, not copied.
The 
shutil
module also provides an 
ignore_patterns()
function for use with this
new parameter. 
ignore_patterns()
takes an arbitrary number of glob-style patterns
and returns a callable that will ignore any files and directories that match any of
these patterns. The following example copies a directory tree, but skips both 
.svn
directories and Emacs backup files, which have names ending with ‘~’:
shutil.copytree('Doc/library''/tmp/library',
ignore=shutil.ignore_patterns('*~''.svn'))
(Contributed by Tarek Ziadé; issue 2663.)
Integrating signal handling with GUI handling event loops like those used by Tkinter
or GTk+ has long been a problem; most software ends up polling, waking up every
fraction of a second to check if any GUI events have occurred. The 
signal
module
can now make this more efficient. Calling 
signal.set_wakeup_fd(fd)
sets a file
descriptor to be used; when a signal is received, a byte is written to that file
descriptor. There’s also a C-level function, 
PySignal_SetWakeupFd()
, for setting the
descriptor.
Event loops will use this by opening a pipe to create two descriptors, one for reading
and one for writing. The writable descriptor will be passed to 
set_wakeup_fd()
, and
the readable descriptor will be added to the list of descriptors monitored by the event
loop via 
select()
or 
poll()
. On receiving a signal, a byte will be written and the
main event loop will be woken up, avoiding the need to poll.
(Contributed by Adam Olsen; issue 1583.)
The 
siginterrupt()
function  is  now  available  from  Python  code,  and  allows
changing whether signals can interrupt system calls or not. (Contributed by Ralf
Schmitt.)
The 
setitimer()
and 
getitimer()
functions have also been added (where they’re
available). 
setitimer()
allows setting interval timers that will cause a signal to be
delivered  to  the  process  after  a  specified  time,  measured  in  wall-clock  time,
consumed  process  time,  or  combined  process+system  time. (Contributed  by
Guilherme Polo; issue 2240.)
The 
smtplib
module now supports SMTP over SSL thanks to the addition of the
SMTP_SSL
class. This class supports an interface identical to the existing 
SMTP
class.
(Contributed  by  Monty  Taylor.) Both  class  constructors  also  have  an  optional
timeout
parameter  that  specifies  a  timeout  for  the  initial  connection  attempt,
measured in seconds. (Contributed by Facundo Batista.)
An implementation of the LMTP protocol (RFC 2033) was also added to the module.
LMTP is used in place of SMTP when transferring e-mail between agents that don’t
manage a mail queue. (LMTP implemented by Leif Hedstrom; issue 957003.)
SMTP.starttls()
now complies with RFC 3207 and forgets any knowledge obtained
from the server not obtained from the TLS negotiation itself. (Patch contributed by
Bill Fenner; issue 829951.)
The 
socket
module now supports TIPC (http://tipc.sf.net), a high-performance non-
IP-based protocol designed for use in clustered environments. TIPC addresses are
4- or 5-tuples. (Contributed by Alberto Bertogli; issue 1646.)
A new function, 
create_connection()
, takes an address and connects to it using an
optional timeout value, returning the connected socket object. This function also
looks up the address’s type and connects to it using IPv4 or IPv6 as appropriate.
Changing 
your 
code 
to 
use 
create_connection()
instead 
of
socket(socket.AF_INET, ...)
may be all that’s required to make your code work
with IPv6.
The  base  classes  in  the 
SocketServer
module  now  support  calling  a
handle_timeout()
method after a span of inactivity specified by the server’s 
timeout
attribute. (Contributed by Michael Pomraning.) The 
serve_forever()
method now
takes an optional poll interval measured in seconds, controlling how often the server
will check for a shutdown request. (Contributed by Pedro Werneck and Jeffrey
Yasskin; issue 742598issue 1193577.)
The 
sqlite3
module, maintained by Gerhard Haering, has been updated from
version 2.3.2 in Python 2.5 to version 2.4.1.
The 
struct
module now supports the C99 
_Bool
type, using the format character
'?'
. (Contributed by David Remahl.)
The 
Popen
objects provided  by  the 
subprocess
module  now  have 
terminate()
,
kill()
, and 
send_signal()
methods. On Windows, 
send_signal()
only supports the
SIGTERM
signal, and all these methods are aliases for the Win32 API function
TerminateProcess()
. (Contributed by Christian Heimes.)
A new variable in the 
sys
module, 
float_info
, is an object containing information
derived from the 
float.h
file about the platform’s floating-point support. Attributes of
this object include 
mant_dig
(number of digits in the mantissa), 
epsilon
(smallest
difference between 1.0 and the next largest  value representable), and  several
others. (Contributed by Christian Heimes; issue 1534.)
Another  new  variable, 
dont_write_bytecode
, controls whether Python writes any
.pyc
or 
.pyo
files on importing a module. If this variable is true, the compiled files
are not written. The variable is initially set on start-up by supplying the -B switch to
the  Python  interpreter,  or  by  setting  the 
PYTHONDONTWRITEBYTECODE
environment
variable before running the interpreter. Python code can subsequently change the
value of this variable to control whether bytecode files are written or not. (Contributed
by Neal Norwitz and Georg Brandl.)
Information about the command-line arguments supplied to the Python interpreter is
available  by  reading  attributes  of  a  named  tuple  available  as 
sys.flags
 For
example,  the 
verbose
attribute is true if Python was executed in verbose mode,
debug
is true in debugging mode, etc. These attributes are all read-only. (Contributed
by Christian Heimes.)
A new function, 
getsizeof()
, takes a Python object and returns the amount of
memory  used  by  the object, measured in  bytes. Built-in objects  return  correct
results; third-party extensions may not, but can define a 
__sizeof__()
method to
return the object’s size. (Contributed by Robert Schuppenies; issue 2898.)
It’s now possible to determine the current profiler and tracer functions by calling
sys.getprofile()
and 
sys.gettrace()
. (Contributed by Georg Brandl; issue 1648.)
The 
tarfile
module now supports POSIX.1-2001 (pax) tarfiles in addition to the
POSIX.1-1988 (ustar) and GNU tar formats that were already supported. The default
format is GNU tar; specify the 
format
parameter to open a file using a different
format:
tar = tarfile.open("output.tar""w",
format=tarfile.PAX_FORMAT)
The  new 
encoding
and 
errors
parameters  specify  an  encoding  and  an  error
handling scheme for character conversions. 
'strict'
'ignore'
, and 
'replace'
are
the three standard ways Python can handle errors,; 
'utf-8'
is a special value that
replaces bad characters with their UTF-8 representation. (Character conversions
occur because the PAX format supports Unicode filenames, defaulting to UTF-8
encoding.)
The 
TarFile.add()
method now accepts an 
exclude
argument that’s a function that
can be used to exclude certain filenames from an archive. The function must take a
filename and return true if the file should be excluded or false if it should be archived.
The function is applied to both the name initially passed to 
add()
and to the names
of files in recursively-added directories.
(All changes contributed by Lars Gustäbel).
An  optional 
timeout
parameter  was  added  to  the 
telnetlib.Telnet
class
constructor, specifying a timeout measured in seconds. (Added by Facundo Batista.)
The 
tempfile.NamedTemporaryFile
class usually deletes the temporary file it created
when the file is closed. This behaviour can now be changed by passing 
delete=False
to the constructor. (Contributed by Damien Miller; issue 1537850.)
A new class, 
SpooledTemporaryFile
, behaves like a temporary file but stores its data
in memory until a maximum size is exceeded. On reaching that limit, the contents will
be written to an on-disk temporary file. (Contributed by Dustin J. Mitchell.)
The 
NamedTemporaryFile
and 
SpooledTemporaryFile
classes both work as context
managers, so you can write 
with tempfile.NamedTemporaryFile() as tmp: ...
.
(Contributed by Alexander Belopolsky; issue 2021.)
The 
test.test_support
module gained a number of context managers useful for
writing tests. 
EnvironmentVarGuard()
is a context manager that temporarily changes
environment variables and automatically restores them to their old values.
Another context manager, 
TransientResource
, can surround calls to resources that
may or may not be available; it will catch and ignore a specified list of exceptions. For
example, a network test may ignore certain failures when connecting to an external
web site:
with test_support.TransientResource(IOError,
errno=errno.ETIMEDOUT):
= urllib.urlopen('https://sf.net')
...
Finally, 
check_warnings()
resets the 
warning
module’s warning filters and returns an
object that will record all warning messages triggered (issue 3781):
with test_support.check_warnings() as wrec:
warnings.simplefilter("always")
# ... code that triggers a warning ...
assert str(wrec.message) == "function is outdated"
assert len(wrec.warnings) == 1"Multiple warnings raised"
(Contributed by Brett Cannon.)
The 
textwrap
module can now preserve existing whitespace at the beginnings and
ends  of  the  newly-created  lines  by  specifying 
drop_whitespace=False
as  an
argument:
>>> = """This  sentence  has a bunch   of
...   extra   whitespace."""
>>> print textwrap.fill(S, width=15)
This  sentence
has a bunch
of    extra
whitespace.
>>> print textwrap.fill(S, drop_whitespace=False, width=15)
This  sentence
has a bunch
of    extra
whitespace.
>>>
(Contributed by Dwayne Bailey; issue 1581073.)
The 
threading
module API is being changed to use properties such as 
daemon
instead of 
setDaemon()
and 
isDaemon()
methods, and some methods have been
renamed to use underscores instead of camel-case; for example, the 
activeCount()
Documents you may be interested
Documents you may be interested