Index

Symbols

!r formatting code, Solution
% (percent) operator, Discussion, Solution
format() function vs., Discussion
* (star) operator
EBNFs and, Solution
**kwargs, Solution
decorators and, Discussion
enforcing signature on, ProblemDiscussion
help function and, Discussion
wrapped functions and, Discussion
*args, Solution
decorators and, Discussion
enforcing signature on, ProblemDiscussion
wrapped functions and, Discussion
+ (plus) operator, Discussion, Solution
-O option (interpreter), Discussion
-OO option (interpreter), Discussion
-W (warnings), Discussion
all option, Solution
error option, Solution
ignore option, Discussion
. (dot) operator, Solution, Selectively eliminate attribute access
< (less than) operator, date comparisons with, Discussion
== operator, Solution
? (question mark) modifier in regular expressions, Solution
\$ (end-marker) in regular expressions, Discussion
_ (single underscore)
avoiding clashes with reserved words, Discussion
naming convention and, Solution
__ (double underscore), naming conventions and, Solution

A

abc module, Problem
abspath() (os.path module), Discussion
abstract base classes, ProblemDiscussion
collections module and, ProblemDiscussion
predefined, Discussion
abstract syntax tree, ProblemDiscussion
abstraction, gratuitous, Avoid gratuitous abstraction
@abstractmethod decorator (abc module), Solution
accepting script via input files, Problem
accessor functions, ProblemDiscussion
adjusting decorators with, ProblemDiscussion
ACCESS_COPY (mmap module), Solution
ACLs, Discussion
actor model, ProblemDiscussion
addHandler() operation (logging module), Discussion
add_argument() method (ArgumentParser module), Discussion, Discussion
Advanced Programming in the Unix Environment, 2e (Stevens, Rago), Discussion
algorithms, Data Structures and AlgorithmsDiscussion
filtering sequence elements, ProblemDiscussion
finding most frequent item (sequences), ProblemDiscussion
limited history, keeping, ProblemDiscussion
sorting for largest/smallest N items, ProblemDiscussion
unpacking, Data Structures and AlgorithmsDiscussion
anonymous functions
defining, ProblemDiscussion
variables, capturing, ProblemDiscussion
Apache web server, Discussion
append() method (ElementTree module), Discussion
%apply directive (Swig), Discussion
archives
creating, Problem
formats of, Discussion
unpacking, Problem
argparse module, Solution, Discussion, Discussion
.args attribute (Exceptions), Discussion
ArgumentParser instance, Discussion
arguments
annotations, Problem
cleaning up in C extensions, Discussion
multiple-dispatch, implementing with, ProblemDiscussion
arrays
calculating with large numerical, ProblemDiscussion
high-performance with Cython, ProblemDiscussion
in C extensions, Discussion
large, sending/receiving, ProblemDiscussion
NumPy and, ProblemDiscussion
operating on, with extension functions, ProblemDiscussion
readinto() method and, Discussion
writing to files from, Discussion
assertRaises() method (unittest module), Solution, Discussion
assertRaisesRegex() method (unittest module), Discussion
ast module, Discussion, Discussion, ProblemDiscussion
asynchronous processing, ProblemDiscussion
attrgetter() function (operator module), Discussion
authentication
encryption vs., Discussion
hmac module, ProblemDiscussion
passwords, prompting at runtime, Problem
requests package and, Solution
simple, ProblemDiscussion
testing with httpbin.org, Discussion

B

b16decode() function (base64 module), Problem
binascii functions vs., Discussion
b16encode() function (base64 module), Problem
binascii functions vs., Discussion
base64 module, Problem
binascii module vs., Solution
BaseException class, SolutionDiscussion
except statements and, Discussion
BaseRequestHandler (socketserver module), Discussion
basicConfig() function (logging module), SolutionDiscussion
bin() function, ProblemDiscussion
binary data
arrays of structures, reading/writing, ProblemDiscussion
encoding with base64 module, Problem
memory mapping, ProblemDiscussion
nested records, reading, ProblemDiscussion
reading into mutable buffers, ProblemDiscussion
reading/writing, ProblemDiscussion
unpack_from() method and, Discussion
variable-sized records, reading, ProblemDiscussion
binary integers, ProblemDiscussion
binascii module, ProblemDiscussion
bind() method (Signature objects), Discussion, Solution
bind_partial() method (Signature objects), Discussion
bit_length() method (int type), Discussion
BNF, Solution
boundscheck() decorator (Cython), Discussion
buffer attribute (files), Solution
Buffer Protocol, Discussion, Solution
BufferedWriter object (io module), Discussion
built-ins
containers, Avoid gratuitous abstraction
exception class, Discussion
methods, overriding, Solution
byte strings
as return value of read(), Solution
encoding with base64, Discussion
indexing of, Discussion
performing text operations on, ProblemDiscussion
printing, Discussion
writing to text files, Problem
bytes, interpreting as text, Solution
BytesIO() class (io module), ProblemDiscussion, Discussion
bz2 compression format, Discussion
bz2 module, ProblemDiscussion
compresslevel keyword, Discussion

C

C APIs, ProblemDiscussion
C extension programming, Discussion, C Extensions
APIs, defining/exporting, ProblemDiscussion
aquiring GIL in, Discussion
capsule objects in, ProblemDiscussion
ctypes module and, ProblemDiscussion
Cython, wrapping code in, ProblemDiscussion
file-like objects, reading, ProblemDiscussion
filenames, passing to, ProblemDiscussion
function pointers, converting to callables, ProblemDiscussion
GIL and, SolutionDiscussion
GIL, releasing in, Problem
iterables from C, consuming, ProblemDiscussion
loading modules, Discussion
modules, building, Solution
null-terminated strings, passing, ProblemDiscussion
opaque pointers in, ProblemDiscussion
open files, passing to, ProblemDiscussion
operating on arrays with, ProblemDiscussion
Python callables in, ProblemDiscussion
Python/C threads, mixing, ProblemDiscussion
segmentation faults and, ProblemDiscussion
strings, converting to Python objects, ProblemDiscussion
Swig, wrapping with, ProblemDiscussion
Unicode strings, passing, ProblemDiscussion
unknown string type and, ProblemDiscussion
writing, modules, ProblemDiscussion
C structures, Discussion
calendar module, Discussion
__call__() method (metaclasses), ProblemDiscussion, Solution
callback functions
carrying extra state with, ProblemDiscussion
inlining, ProblemDiscussion
capsule objects, ProblemDiscussion
C APIs, defining/exporting with, ProblemDiscussion
Celery, Discussion
center() method (str type), Solution
certificate authorities, Discussion
CFFI, Discussion
CFUNCTYPE instances (ctypes module), Discussion
chain() method (itertools module), ProblemDiscussion
chained exceptions, Solution, Discussion
ChainMap class (collections module), ProblemDiscussion
update() method vs., Discussion
chdir() function (os module), Discussion
check_output() function (subprocess class), Solution
Chicago, Illinois, Solution, Solution
choice() function (random module), Solution
__class__ attribute, DiscussionDiscussion
class decorators, Solution, ProblemDiscussion
data models and, Discussion
mixin classes vs., Discussion
mixins and, Discussion
classes, Classes and ObjectsDiscussion
abstract base classes, ProblemDiscussion
attribute definition order, ProblemDiscussion
caching instances of, Problem
closures vs., ProblemDiscussion
coding conventions in, ProblemDiscussion
constructors, multiple, ProblemDiscussion
containers, custom, ProblemDiscussion
data models, implementing, ProblemDiscussion
decorators, Solution
decorators, defining in, ProblemDiscussion
defining decorators as, ProblemDiscussion
delegating attributes, ProblemDiscussion
descriptors and, ProblemDiscussion
extending properties in subclasses, ProblemDiscussion
extending with mixins, ProblemDiscussion
implementing state for objects/machines, ProblemDiscussion
inheritance, implementation of, Discussion
initializing members at definition time, ProblemDiscussion
initializing of data structures in, ProblemDiscussion
lazy attributes and, Problem
mixins, Discussion, ProblemDiscussion
private data in, ProblemDiscussion
replacing with functions, ProblemDiscussion
statements, metaclass keyword in, ProblemDiscussion
super() function and, ProblemDiscussion
supporting comparison operations, ProblemDiscussion
type system, implementing, ProblemDiscussion
__init__() method, bypassing, ProblemDiscussion
@classmethod decorator, Discussion
decorating class methods with, ProblemDiscussion
__func__ attribute and, Discussion
client module (http package), Discussion
clock() function (time class), Discussion
close() method (generators), Discussion
closefd argument (open() function), Solution
closures
accessing variables inside, ProblemDiscussion
capturing state with, SolutionDiscussion
classes vs., ProblemDiscussion
converting classes to functions with, Solution
nonlocal declarations and, Discussion
cmath module, Solution
code readability and string templates, Discussion
coding conventions, ProblemDiscussion
collections module
ChainMap class, ProblemDiscussion
Counter class, ProblemDiscussion
defaultdict class, Solution
deque class, ProblemDiscussion
implementing custom containers with, ProblemDiscussion
namedtuple() function, Solution
OrderedDict class, ProblemDiscussion
combinations() function (itertools module), Solution
combinations_with_replacement() function (itertools module), Solution
combining() function (unicodedata module), Discussion
command-line options, parsing, Utility Scripting and System Administration, Problem, Solution
compare_digest() function (hmac module), Solution
comparison operations, ProblemDiscussion
compile() function (ast module), Solution
compile() function (re module), Discussion
complex() function, Solution
complex-valued math, ProblemDiscussion
compress() function (itertools module), Discussion
compressed files, reading/writing, ProblemDiscussion
specifying level of, Discussion
concurrency, ConcurrencyDiscussion
actor model and, ProblemDiscussion
coroutines, ProblemDiscussion
event-driven I/O and, Discussion
GIL, ProblemDiscussion
parallel programming, ProblemDiscussion
polling thread queues, ProblemDiscussion
threads, ProblemDiscussion
with generators, ProblemDiscussion
Condition object (threading module), Discussion
conditionals and NaN values, Discussion
config file
Python code vs., Discussion
Python source file vs., Discussion
ConfigParser module, SolutionDiscussion
configuration files, Problem
connect() function (sqlite3 module), Solution
connection (multiprocessing module), ProblemDiscussion
constructors, defining multiple, ProblemDiscussion
containers, custom, ProblemDiscussion
iterating over items in separate, ProblemDiscussion
__iter__() method and, ProblemDiscussion
context managers
defining, ProblemDiscussion
use instance as, Discussion
context-management protocols, ProblemDiscussion
contextlib module, Discussion
@contextmanager decorator (contextlib module), Discussion, Discussion
contextmanager module, Discussion
cookies, Solution
copy2() function (shutil module), Discussion
copying directories/files, Problem
copytree() function (shutil class), SolutionDiscussion
coroutines, ProblemDiscussion
capturing state with, Solution
inlining callback functions with, Solution
Counter objects (collections module), ProblemDiscussion
country_timezones dictionary (pytz module), Discussion
cProfile module, Solution
CPU-bound programs, Solution
CPUs, restricting use of, Problem
critical() function (logging module), Solution
cryptography, Discussion
CSV files, reading/writing, ProblemDiscussion
csv module, ProblemDiscussion
ctypes module, ProblemDiscussion
alternatives to, Discussion
memory addresses, wrapping, ProblemDiscussion
custom exceptions, Discussion
Cython, Discussion
array handling with, Discussion
high-performance arrays with, ProblemDiscussion
memoryviews in, Discussion
releasing the GIL, Discussion
setup.py file, Solution, Solution
wrapping existing code in, ProblemDiscussion

D

daemon processes (Unix), ProblemDiscussion
daemonic threads, Solution
data
pickle module and, ProblemDiscussion
serializing, ProblemDiscussion
transforming/reducing simultaneously, ProblemDiscussion
data analysis, Discussion
data encapsulation, ProblemDiscussion
data encoding
CSV files, reading/writing, ProblemDiscussion
for RPCs, Discussion
hexadecimal digits, ProblemDiscussion
JSON, reading/writing, ProblemDiscussion
with base64 module, Problem
XML, extracting data from, ProblemDiscussion
data models, ProblemDiscussion
data processing
dictionaries, converting to XML, ProblemDiscussion
nested binary records, reading, ProblemDiscussion
parsing large XML files, ProblemDiscussion
relational databases and, ProblemDiscussion
statistics, ProblemDiscussion
summarizing, ProblemDiscussion
variable-sized binary records, reading, ProblemDiscussion
XML namespaces, ProblemDiscussion
XML, parsing/modifying/rewriting, ProblemDiscussion
data structures, Data Structures and AlgorithmsDiscussion, Use the built-in containers
cyclic, managing memory in, ProblemDiscussion
dictionaries
grouping records by field, ProblemDiscussion
sorting by common keys, ProblemDiscussion
heaps, ProblemDiscussion
initializations of, simplifying, ProblemDiscussion
multidicts, ProblemDiscussion
database API (Python), ProblemDiscussion
strings and, Discussion
datagrams, Discussion
date calculations, ProblemDiscussion
datetime module, ProblemDiscussion
databases and, Discussion
date calculations with, ProblemDiscussion
replace() method, Discussion
strptime() method, Discussion
time conversions, ProblemDiscussion
time zones and, Solution
timedelta object, Solution
dateutil module, Discussion
deadlock avoidance, Discussion
deadlocks, ProblemDiscussion
dining philosophers problem, Discussion
watchdog timers and, Discussion
__debug__ variable, Discussion
debug() function (logging module), Solution
debugger, launching, Solution
debugging, Discussion
decimal module, ProblemDiscussion
databases and, Discussion
formatting output of, Discussion
decode() method (str type), Solution
decorators, ProblemDiscussion
adding function arguments with, ProblemDiscussion
adjustable attributes for, ProblemDiscussion
class methods, applying to, ProblemDiscussion
defining as class, ProblemDiscussion
defining in classes, ProblemDiscussion
forcing type checking with, ProblemDiscussion
multiple-dispatch, implementing with, Discussion
optional arguments for, ProblemDiscussion
patching classes with, ProblemDiscussion
preserving function metadata in, ProblemDiscussion
static methods, applying to, ProblemDiscussion
unwrapping, ProblemDiscussion
with arguments, ProblemDiscussion
wrappers as, ProblemDiscussion
__wrapped__ attribute, Discussion
deepcopy() function (copy module), Avoid making unnecessary data structures or copies
defaultdict object (collections module), Solution
groupby() function vs., Discussion
ordinary dictionary vs., Solution
__delattr__() method (delegation), Discussion
delegation
inheritance vs., Discussion
of attributes, ProblemDiscussion
__delete__() method (descriptors), Solution
DeprecationWarning argument (warn() function), Solution
deque class (collections module), ProblemDiscussion
appending, Discussion
popping, Discussion
descriptors
creating, ProblemDiscussion
data models, implementing, ProblemDiscussion
extending, Discussion
lazy attributes and, ProblemDiscussion
type system, implementing, ProblemDiscussion
deserializing data, ProblemDiscussion
Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, Helm, Johnson, and Vlissides), Discussion
dest argument (add_argument() method), Discussion
detach() method, Discussion
dict() function, Discussion, Discussion
dictionaries
comparing, ProblemDiscussion
converting to XML, ProblemDiscussion
Counter objects and, Discussion
defaultdict vs., Solution
grouping records based on field, ProblemDiscussion
JSON support for, Discussion
keeping in order, ProblemDiscussion
multiple values for a single key in, ProblemDiscussion
removing duplicates from, Solution
sorting, ProblemDiscussion
sorting list of, by common key, ProblemDiscussion
subsets, extracting, ProblemDiscussion
dictionary comprehension, Solution
dining philosophers problem (deadlocks), Discussion
directories
as runnable scripts, ProblemDiscussion
copying, Problem
moving, Problem
temporary, ProblemDiscussion
directory listings, ProblemDiscussion
dis module, ProblemDiscussion
discarding vs. filtering iterables, Discussion
distributed systems and property calls, Discussion
domain sockets (Unix), Discussion, Solution
connecting interpreters with, Discussion
DOTALL flag (re module), Discussion
dropwhile() function (itertools module), Solution
dump() function (pickle module), Solution
dumps() function (json module), Solution
indent argument, Discussion
sort_keys argument, Discussion
dumps() function (pickle module), Solution
dup2() function (os module), Discussion

E

EBNF, Solution
ElementTree module (xml.etree), Discussion, ProblemDiscussion
creating XML documents with, ProblemDiscussion
iterparse() function, Discussion
parse() function, Discussion
parse_and_remove() function, Discussion
parsing namespaces and, Discussion
parsing/modifying/rewriting files with, ProblemDiscussion
empty() method (queue module), Discussion
encode() method (str type), Solution
encoding text data, ProblemDiscussion
changing in open files, ProblemDiscussion
passing to C libraries, ProblemDiscussion
pickling and, Discussion
encryption vs. authentication, Discussion
end argument (print() function), Solution
endswith() method (str type), Solution
pattern matching with, Solution
__enter__() method (with statements), ProblemDiscussion
enumerate() function, ProblemDiscussion
environ argument (WSGI), Discussion
error messages, terminating program with, Problem
error() function (logging module), Solution
escape() function (html module), Solution
escape() function (xml.sax.saxutils module), Discussion
Event object (threading module), ProblemDiscussion
event-driven I/O, ProblemDiscussion
except statement, Discussion, Solution
chained exceptions and, Solution
reraising exceptions caught by, Problem
Exception class, Discussion
handler for, Solution
exceptions
catching all, Problem
creating custom, Discussion
handling multiple, Problem
raising in response to another exception, Problem
reraising, Problem
SystemExit, Solution
testing for, Problem
with statements and, Discussion
exec() function, ProblemDiscussion
execve() function (os module), Solution
__exit__() method (with statements), ProblemDiscussion
@expectedFailure decorator, Discussion
exponential notation, Solution
%extend directive (Swig), Discussion
external command
executing, Problem
getting output, Problem

F

factory functions, Solution
faulthandler module, ProblemDiscussion
fdel attribute (properties), Discussion
fget attribute (properties), Discussion
FieldStorage() class (cgi module), Discussion
file descriptor
passing between processes, ProblemDiscussion
wrapping in object, Problem
file-like objects, reading from C, ProblemDiscussion
FileInput class, Discussion
helper methods, Discussion
fileinput module (built-in), Solution
FileIO class (io module), Discussion
FileNotFoundError exception, Solution
files, Files and I/ODiscussion
accepting scripts via, Problem
binary data, reading/writing, ProblemDiscussion
bypassing name encoding, ProblemDiscussion
bytes, writing to text, Problem
changing encoding in open, ProblemDiscussion
compressed, reading/writing, ProblemDiscussion
copying, Problem
creating new, ProblemDiscussion
defining modules in multiple, ProblemDiscussion
detach() method, Discussion
directory listings, getting, ProblemDiscussion
finding by name, Problem
getfilesystemencoding() function (sys module), ProblemDiscussion
headers, unpacking, Solution
iterating over fixed-sized records in, Problem
line ending, changing, ProblemDiscussion
manipulating pathnames of, ProblemDiscussion
memory mapping, ProblemDiscussion
moving, Problem
mutable buffers, reading into, ProblemDiscussion
names, passing to C extensions, ProblemDiscussion
newlines, Discussion
open() function, ProblemDiscussion
open, passing to C extensions, ProblemDiscussion
path module (os), ProblemDiscussion
printing bad filenames for, ProblemDiscussion
printing to, Problem
reading, ProblemDiscussion
readinto() method of, Discussion
saving objects to, ProblemDiscussion
separator character, changing, ProblemDiscussion
temporary, ProblemDiscussion
testing for existence of, ProblemDiscussion
text data from, ProblemDiscussion
unpacking, Discussion
wrapping descriptors in objects, Problem
x mode of open() function, ProblemDiscussion
files list, Discussion
filesystem, byte strings and, Discussion
fill() function (textwrap module), Discussion
filter() function, Solution
filtering
discarding iterables vs., Discussion
normalization of Unicode text and, Discussion
sequence elements, ProblemDiscussion
token streams, Solution
find Unix utility, Discussion
find() method (str type)
pattern matching with, Solution
search/replace text and, Solution
findall() method (re module), Solution
finditer() method (re module), Discussion
find_library() function (ctypes.util module), Discussion
float()
decimal arithmetic and, ProblemDiscussion
format() function (built-in), ProblemDiscussion
j suffix for, Solution
fnmatch module, ProblemDiscussion
fnmatch() function (fnmatch module), ProblemDiscussion
fnmatchcase() function (fnmatch module), ProblemDiscussion
for loops
consuming iterators manually vs., ProblemDiscussion
generators and, ProblemDiscussion
fork() function (os module), Discussion
ForkingTCPServer objects (socketserver module), Discussion
ForkingUDPServer objects (socketserver module), Discussion
format() function (built-in )
and non-decimal integers, Solution
floats, specifying precision with, Discussion
formatting output with, Discussion
format() function (built-in), ProblemDiscussion
format() method (str type), Solution
customizing string, ProblemDiscussion
interpolating variables, ProblemDiscussion
__format__() method, ProblemDiscussion
format_map() method (str type), Solution
fpectl module, Discussion
fractions module, ProblemDiscussion
frame hacking, Discussion
from module import * statement (modules), Problem
reload() function and, Discussion
from module import name, Selectively eliminate attribute access
fromkeys() method (dict type), Solution
from_bytes() method (int type), Solution
fset attribute (properties), Discussion
fsum() function (math module), Discussion
full() method (queue module), Discussion
functions, FunctionsDiscussion
accepting arbitrary arguments for, ProblemDiscussion
accessor functions as attributes of, ProblemDiscussion
anonymous/inline, defining, ProblemDiscussion
argument annotations, Problem
calling with fewer arguments, ProblemDiscussion
closures, accessing variables inside, ProblemDiscussion
default arguments for, ProblemDiscussion
disassembling, ProblemDiscussion
inlining callbacks, ProblemDiscussion
keyword arguments only, ProblemDiscussion
multiple return values for, Problem
partial() function and, ProblemDiscussion
pointers, converting to callables, ProblemDiscussion
replacing classes with, ProblemDiscussion
state, carrying, ProblemDiscussion
wrapper layers for, ProblemDiscussion
wrapping with Cython, ProblemDiscussion
futures module (concurrent module), Discussion, ProblemDiscussion
ProcessPoolExecutor class, ProblemDiscussion
FutureWarning argument (warn() function), Solution

G

garbage collection
caching instances and, Discussion
cyclic data structures and, Discussion
gauss() function (random module), Discussion
gdb debugger, ProblemDiscussion
General Decimal Arithmetic Specification (IBM), Discussion
generator expressions
concatenating/combining strings and, Discussion
filtering sequence elements with, Solution
flattening nested sequences with, ProblemDiscussion
recursive algorithms vs., ProblemDiscussion
transforming/reducing data with, ProblemDiscussion
Generator Tricks for Systems Programmers (Beazley), Discussion
generator-expression argument, Solution
GeneratorExit exception, Solution
generators, Iterators and GeneratorsDiscussion
concurrency with, ProblemDiscussion
creating iterator patterns with, ProblemDiscussion
defining with extra states, Problem
inlining callback functions with, Solution
islice() function and, ProblemDiscussion
iterator protocol, implementing, ProblemDiscussion
pipelines, creating with, ProblemDiscussion
search functions and, Discussion
slicing, ProblemDiscussion
unpacking, Discussion
GET requests (HTTP), Solution
get() function (webbrowser class), Solution
get() method (ElementTree module), Discussion
get() method (queue module), Solution, Discussion
__get__() method, ProblemDiscussion
descriptors, SolutionDiscussion
getattr() function, Solution
visitor patterns and, Discussion
__getattr__() method (delegation), Solution, Discussion
getboolean() method (ConfigParser module), Discussion
getdefaultencoding() function (sys module), Solution
getfilesystemencoding() function (sys module), ProblemDiscussion
getframe() (sys module), Discussion
frame hacking with, Discussion
__getitem__() method, Discussion
getLogger() function (logging module), Discussion
getpass module, Solution
getpass() method (getpass module), Discussion
getrandbits() function (random module), Solution
getrecursionlimit() function (sys module), Discussion
gettempdir() function (tempfile module), Discussion
getuser() (getpass module), Discussion
get_archive_formats() function (shutil module), Solution
get_data() function (pkgutil module), Discussion
get_terminal_size() function (os module), Discussion, Solution
gevent module, Discussion
glob module, Discussion
Global Interpreter Lock (GIL), Discussion, ProblemDiscussion
C, calling Python from, Discussion
C/Python threads, mixing, ProblemDiscussion
releasing in C extensions, Problem
releasing in Cython, Discussion
thread pools and, Discussion
grammar rules, for parsers, ProblemDiscussion
greenlets, Discussion
.group() method (re module), Solution
groupby() function (itertools module), ProblemDiscussion
grouping records, in dictionaries, Discussion
gzip compression format, Discussion
gzip module, ProblemDiscussion
compresslevel keyword, Discussion

H

hard limit on resources, Discussion
hashes, Solution
heappop() method (heapq module), Discussion
priority queues and, Solution
heapq module, ProblemDiscussion
merge() function, ProblemDiscussion
heaps, ProblemDiscussion
nlargest()/nsmallest() functions and, Discussion
reversing order of, Discussion
help function
keyword arguments and, Discussion
metadata for arguments and, Problem
hex() function, ProblemDiscussion
hexadecimal digits, encoding, ProblemDiscussion
hexadecimal integers, ProblemDiscussion
hmac module, ProblemDiscussion
HTML entities
handling in text, ProblemDiscussion
replacing, Solution
html module, Solution
HTTP services
clients, ProblemDiscussion
headers, custom, Solution
testing client code, Discussion
httpbin.org service, Discussion

I

I/O, Files and I/ODiscussion
decoding/encoding functions for, Solution
event-driven, ProblemDiscussion
iter() function and, Discussion
objects, serializing, ProblemDiscussion
operations on strings, ProblemDiscussion
passing open files and, Discussion
serial ports, communicating with, ProblemDiscussion
thread termination and, Solution
IDEs for Python development, Discussion
__init__() method, data structures and, Discussion
if-elif-else blocks, Discussion
IGNORECASE flag (re module), Solution
ignore_patterns() function (shutil module), Solution
ignore_types argument (isinstance() function), Solution
import hooks, SolutionSolution
patching modules on import, ProblemDiscussion
sys.path_hooks variable and, Solution
import statement, ProblemDiscussion
ImportError exceptions, Discussion
importlib module, Discussion
import_module() function (importlib module), Problem, Discussion
index-value pairs, iterating over, ProblemDiscussion
IndexError exception, Discussion
indexing in CSV files, ProblemDiscussion
indices() method (slice), Discussion
infinite values, ProblemDiscussion
info() function (logging module), Solution
inheritance
class decorators and, Discussion
class defined decorators and, Discussion
delegation vs., Discussion
implementation of, Discussion
.ini file features, Discussion
__init__() method (classes), Discussion
bypassing, ProblemDiscussion
coding conventions and, ProblemDiscussion
data structure initialization and, ProblemDiscussion
mixins and, Discussion
multiple constructors and, ProblemDiscussion
optional arguments and, Discussion
super() function and, ProblemDiscussion
inline functions
callbacks, ProblemDiscussion
defining, ProblemDiscussion
input files, Problem
input() function (fileinput), Discussion
insert() method (ElementTree module), Discussion
inspect() module, ProblemDiscussion
instances
cached, metaclasses and, Solution
creation, controlling with metaclasses, ProblemDiscussion
descriptors and, ProblemDiscussion
saving memory when creating, ProblemDiscussion
serializing with JSON, Discussion
WSGI applications as, Discussion
int type, ProblemDiscussion
int() function, Solution
interface files (Swig), Solution
interpreters, communication between, ProblemDiscussion
invalidate_caches() function (importlib module), Discussion
io module, ProblemDiscussion, ProblemDiscussion
ioctl(), Problem
IPv4Address objects (ipaddress module), Discussion
is operator, Discussion
isinf() function (math module), Solution
isinstance() function, Solution
islice() function (itertools module), ProblemDiscussion, Solution
isnan() function (math module), Solution
issuing warning messages, Discussion
is_alive() method (Thread class), Solution
itemgetter function (operator module), Solution
items() method (dictionaries), Discussion
iter() function
fixed size records and, Problem
while loops vs., ProblemDiscussion
__iter__() method (iterators), ProblemDiscussion
generators with extra states and, Solution
iterables
custom containers for, ProblemDiscussion
discarding parts of, ProblemDiscussion
from C, consuming, ProblemDiscussion
sorted/merged, iterating over, ProblemDiscussion
unpacking, ProblemDiscussion
iterating
all possible combinations/permutations, ProblemDiscussion
chain() method (itertools module), ProblemDiscussion
iter() function vs. while loops, ProblemDiscussion
merge() function (heapq module), ProblemDiscussion
over fixed-sized records, Problem
over index-value pairs, ProblemDiscussion
over separate containers, ProblemDiscussion
over sorted/merged iterables, ProblemDiscussion
reverse, Problem
zip() function and, ProblemDiscussion
iterators, Iterators and GeneratorsDiscussion
consuming manually, ProblemDiscussion
creating patterns with generators, ProblemDiscussion
delegating, ProblemDiscussion
islice() function (itertools module), ProblemDiscussion
protocol, implementing, ProblemDiscussion
slicing, ProblemDiscussion
iterparse() function (ElementTree module), Discussion
iterparse() method (ElementTree module), Discussion
itertools module, ProblemDiscussion, ProblemDiscussion
compress() function, Discussion
groupby() function, ProblemDiscussion
iter_as() function, Solution

J

join() method (str type), ProblemDiscussion
changing single characters with, Discussion
join() method (Thread class), Solution
JSON (JavaScript Object Notation)
reading/writing, ProblemDiscussion
types supported by, Discussion
json module, ProblemDiscussion
just-in-time (JIT) compiling, Problem, Discussion

K

key argument (sorted() function), Solution
KeyboardInterrupt exception, Solution, Discussion
keys() method (dictionaries), Discussion
keyword arguments, Solution
annotations, Problem
for metaclasses, ProblemDiscussion
functions that only accept, ProblemDiscussion
help function and, Discussion

L

lambda expressions, Discussion, Solution
variables, capturing, ProblemDiscussion
launching
Python debugger, Solution
web browsers, Discussion
lazy imports, Discussion
lazy unpacking, Discussion
leap years, datetime module and, Solution
libraries, adding logging to, Problem
limited history, ProblemDiscussion
linalg subpackage (NumPy module), Solution
linear algebra, ProblemDiscussion
list comprehension, Solution
listdir() function (os module), ProblemDiscussion
bad filenames, printing, ProblemDiscussion
lists
NumPy vs., Solution
processing and star unpacking, Discussion
unpacking, Discussion
ljust() method (str type), Solution
llvmpy extension module, Discussion
load() function (pickle module), Solution
untrusted data and, Discussion
LoadLibrary() function (ctypes.cdll module), Discussion
loads() function (json module), Solution
loads() function (pickle module), Solution
loadTestsFromModule() method (TestLoader module), Discussion
loadTestsFromTestCase() method (TestCase module), Discussion
local() method (threading module), ProblemDiscussion
locale module, Discussion
locals() function and exec() function, ProblemDiscussion
Lock objects (threading module), ProblemDiscussion
logging
adding to libraries, Problem
adding to simple scripts, Problem
output of, Discussion
test output to file, Problem
logging module, Discussion, Discussion
critical(), Solution
debug(), Solution
error(), Solution
info(), Solution
warning(), Solution
lower() method (str type), Solution
lstrip() method (str type), Solution
lxml module, Discussion

M

MagicMock instances, Discussion
makefile() method (socket module), Discussion
make_archive() function (shutil module), Solution
MANIFEST.in file, Solution
manipulating pathnames, ProblemDiscussion
map() operation (ProcessPoolExecutor class), Discussion
Mapping class (collections module), Solution
mappings
class definition order and, Discussion
consolidating multiple, ProblemDiscussion
match() method (re module), Solution
search/replace text and, Solution
math() module, Solution
matrix calculations, ProblemDiscussion
matrix object (NumPy module), Solution
max() function, Discussion, Discussion
attrgetter() function and, Discussion
generator expressions and, Discussion
itemgetter() function, Discussion
memory
management in cyclic data structures, ProblemDiscussion
mapping, ProblemDiscussion
OrderedDict objects and, Discussion
parsing XML and, ProblemDiscussion
restricting use of, Problem
wchar_t strings and, Discussion
__slots__ attribute and, ProblemDiscussion
memory mapping, ProblemDiscussion
MemoryError exceptions, Solution
memoryview() object (struct module), Discussion, Solution, Discussion
Cython-typed, Discussion
large arrays and, ProblemDiscussion
memory_map() function (mmap module), Solution
merge() function (heapq module), ProblemDiscussion
Mersenne Twister algorithm, Discussion
meta path importer, SolutionSolution
sys.metapath object, Solution
metaclass keyword (class statement), ProblemDiscussion
metaclasses, Solution
capturing attribute definition order, ProblemDiscussion
controlling instance creation, ProblemDiscussion
enforcing coding conventions, ProblemDiscussion
initializing members at definition time, ProblemDiscussion
non-standardized binary files and, Solution
optional arguments for, ProblemDiscussion
__prepare__() method and, Discussion
metaprogramming, MetaprogrammingDiscussion
adjustable attributes, ProblemDiscussion
decorators, ProblemDiscussion
decorators with arguments, ProblemDiscussion
dis module, ProblemDiscussion
exec() function vs., ProblemDiscussion
function metadata in decorators, ProblemDiscussion
function wrappers, ProblemDiscussion
repetitive property methods and, ProblemDiscussion
unwrapping decorators, ProblemDiscussion
method overloading, ProblemDiscussion
methodcaller() function (operator module), Solution
Microsoft Excel, CSV encoding rules of, Discussion
Microsoft Visual Studio, Solution
min() function, Discussion, Discussion
attrgetter() function and, Discussion
generator expressions and, Discussion
itemgetter() function, Discussion
__missing__() method (dict module), Solution
mixin classes, Discussion
extending unrelated classes with, ProblemDiscussion
in descriptors of data models, Discussion
mkdtemp() function (tempfile module), Discussion
mkstemp() function (tempfile module), Discussion
mmap module, ProblemDiscussion
mock module (unittest module), Solution, Discussion
module import * statement, ProblemDiscussion
modules, Modules and PackagesDiscussion
controlling import of, ProblemDiscussion
from module import * statement, Problem
hierarchical packages of, ProblemDiscussion
import hooks, using, ProblemDiscussion
importing with relative names, ProblemDiscussion
importing, using string as name, Problem
importlib module, Discussion
import_module() function (importlib module), Problem
invalidate_caches() function (importlib module), Discussion
meta path importer, SolutionSolution
new_module() function (imp module), Discussion
objects, creating, Discussion
patching on import, ProblemDiscussion
relative imports vs. absolute names, Discussion
reloading, ProblemDiscussion
remote machines, loading from, ProblemDiscussion
splitting into multiple files, ProblemDiscussion
sys.path, adding directories to, ProblemDiscussion
sys.path_importer_cache object, Discussion
virtual environments and, ProblemDiscussion
__all__ variable in, ProblemDiscussion
__init__.py file, Problem
__main__.py files, ProblemDiscussion
monthrange() function (calendar module), Discussion
months, finding date ranges of, ProblemDiscussion
moving directories/files, Problem
__mro__ attribute, Discussion
multidicts, ProblemDiscussion
multiple-dispatch, ProblemDiscussion
multiprocessing module, Discussion
GIL and, Solution
passing file descriptors with, ProblemDiscussion
reduction module, ProblemDiscussion
RPCs and, Solution
mutable buffers, reading into, ProblemDiscussion
MutableMapping class (collections module), Solution
MutableSequence class (collections module), Solution
MutableSet class (collections module), Solution

N

named pipes (Windows), Discussion, Solution, Discussion
NamedTemporaryFile() function (tempfile module), Discussion
namedtuple() function (collections module), Solution
namedtuple() method (collections module)
new_class() function and, Discussion
unpacking binary data and, Discussion
NameError exception, Solution
namespace package, checking for, Discussion
namespaces (XML), parsing, ProblemDiscussion
namespaces, multiple directories in, ProblemDiscussion
naming conventions
for private data, ProblemDiscussion
__ (double underscore) and, Solution
NaN (not a number) values, ProblemDiscussion
in JSON, Discussion
isnan() function and, Discussion
nested sequences, flattening, ProblemDiscussion
network programming, Network and Web ProgrammingDiscussion
connection (multiprocessing module), ProblemDiscussion
event-driven I/O, ProblemDiscussion
hmac module, ProblemDiscussion
interpreters, communication between, ProblemDiscussion
large arrays, sending/receiving, ProblemDiscussion
passing file descriptors, ProblemDiscussion
remote procedure calls, ProblemDiscussion, ProblemDiscussion
simple authentication, ProblemDiscussion
socketserver module, ProblemDiscussion
SSL, implementing, ProblemDiscussion
TCP servers, ProblemDiscussion
UDP server, implementing, ProblemDiscussion
UDPServer class, Discussion
XML-RPC, ProblemDiscussion
__new__() method (classes)
coding conventions and, ProblemDiscussion
optional arguments and, Discussion
newlines, Discussion
new_class() function (types module), ProblemDiscussion
new_module() function (imp module), Discussion
next() function (iterators), Solution
nlargest() function (heapq module), ProblemDiscussion
nonblocking, supporting with queues, Discussion
noncapture groups (regular expressions), Solution
nonlocal declarations, Discussion
adjusting decorators with, ProblemDiscussion
normalize() function (unicodedata module), Solution, Solution
normalize() method (pytz module), Solution
normalizing Unicode, ProblemDiscussion
supported forms in Python, Solution
normpath() (os.path module), Discussion
nsmallest() function (heapq module), ProblemDiscussion
null-terminated strings, passing to C, ProblemDiscussion
NullHandler() class (logging module), Discussion
numerical operations, Numbers, Dates, and TimesDiscussion
complex-valued math, ProblemDiscussion
decimal calculations, ProblemDiscussion
formating for output, ProblemDiscussion
infinity and, ProblemDiscussion
linear algebra calculations, ProblemDiscussion
matrix calculations, ProblemDiscussion
NaNs and, ProblemDiscussion
NumPy and, ProblemDiscussion
on fractions, ProblemDiscussion
packing/unpacking integers from byte string, ProblemDiscussion
random number generators, ProblemDiscussion
rounding, ProblemDiscussion
time, ProblemDiscussion
time conversions, ProblemDiscussion
with binary integers, ProblemDiscussion
with hexadecimal integers, ProblemDiscussion
with octal integers, ProblemDiscussion
NumPy module, ProblemDiscussion, Discussion
complex math and, Discussion
CPU-bound programs and, Solution
linear algebra and, ProblemDiscussion
matrix calculations and, ProblemDiscussion
unpacking binary data with, Discussion

O

objects, Classes and ObjectsDiscussion
and context-management protocols, ProblemDiscussion
calling methods on, when named in strings, ProblemDiscussion
creating large numbers of, ProblemDiscussion
defining default arguments and, Discussion
format() function and, ProblemDiscussion
formatting output of, ProblemDiscussion
implementing states for, ProblemDiscussion
iterator protocol, implementing, ProblemDiscussion
JSON dictionary, decoding to, Discussion
memory management, ProblemDiscussion
representing in C, Discussion
serializing, ProblemDiscussion
visitor pattern, implementing, ProblemDiscussion
visitor patterns without recursion, ProblemDiscussion
with statement and, ProblemDiscussion
object_hook (json.loads() function), Discussion
object_pairs_hook (json.loads() function), Discussion
oct() function, ProblemDiscussion
octal integers, ProblemDiscussion
Olson time zone database, Solution
opaque pointers, ProblemDiscussion
open() function, ProblemDiscussion
binary data, reading/writing, ProblemDiscussion
closefd argument, Solution
file descriptors and, Solution
on non-Unix systems, Discussion
rb/wb modes of, ProblemDiscussion
rt/wt mode, ProblemDiscussion
x mode of, ProblemDiscussion
optimizating your programs, Problem
optparse vs. argparse, Discussion
OrderedDict object (collections module), ProblemDiscussion
decoding JSON data into, Discussion
os module
listdir() function, ProblemDiscussion
path module in, ProblemDiscussion
OSError exception, SolutionDiscussion
ouput sent to stdout, Testing, Debugging, and Exceptions

P

pack() function (structs), Discussion
packages, Modules and PackagesDiscussion
datafiles, reading, ProblemDiscussion
directories/zip files, running, ProblemDiscussion
distributing, ProblemDiscussion
hierarchical, of modules, ProblemDiscussion
MANIFEST.in file, Solution
namespaces, multiple directories in, ProblemDiscussion
per-user directory, installing, ProblemDiscussion
submodules, importing with relative names, ProblemDiscussion
sys.path, adding directories to, ProblemDiscussion
third-party options for, Discussion
virtual environments and, ProblemDiscussion
__init__.py file, Problem
__path__ variable and, Discussion
pack_into() function (struct module), Discussion
Pandas package, Discussion, ProblemDiscussion
parallel programming, ProblemDiscussion
parse tree, Solution
parse() function (ElementTree module), Discussion
parser (html), Discussion
parser, recursive descent, ProblemDiscussion
parse_and_remove() function (ElementTree module), Discussion
parsing command-line options, Utility Scripting and System Administration, Problem
partial() function (functools module), ProblemDiscussion
defining property methods and, Discussion
fixed size records and, Problem
optional arguments for decorators and, Discussion
state, carrying with, Solution, Discussion
Paste, Discussion
patch() function (unittest.mock class)
testing output with, Solution
unit tests with, Problem
patching objects, Problem
path module (os), ProblemDiscussion
testing for existing files with, ProblemDiscussion
pathnames, manipulating, ProblemDiscussion
pattern matching, ProblemDiscussion
pattern object (regular expressions), Solution
pdb debugger, ProblemDiscussion
per-user directory, ProblemDiscussion
performance
ast manipulation and, Discussion
attrgetter() function and, Discussion
Cython and, ProblemDiscussion
dictionary comprehension vs. dict() type, Discussion
join() method vs. + operator, Discussion
keeping limited history and, Discussion
lazy attributes and, ProblemDiscussion
nlargest()/nsmallest() functions and, Discussion
NumPy module and, ProblemDiscussion
of byte vs. text strings, Discussion
pattern objects and, Discussion
profiling/timing, Problem
sanitizing strings and, Discussion
strptime() method and, Discussion
perf_counter() function (time class), Discussion, Discussion
PermissionError exception, Solution
permutations() function (itertools module), Solution
pexpect, Problem
pickle module, ProblemDiscussion
limits on, Discussion
multiprocessing.connection functions and, Solution
RPCs and, ProblemDiscussion
Pipe object (multiprocessing module), Solution
pipelines, creating, ProblemDiscussion
pipes
accepting script via, Problem
mimicking, ProblemDiscussion
PLY, Discussion, Discussion
polling thread queues, ProblemDiscussion
Popen class (subprocess module), Discussion
POST method (HTTP), Solution
pprint() function (pprint module), Discussion
predefined abstract base classes, Discussion
prefix variable, Discussion, Discussion
__prepare__() method (classes), Discussion
new_class() function and, Solution
optional arguments and, Discussion
prepare_class() function (types module), Discussion
print() function, Solution, Solution, Solution
end argument, Solution
line ending, changing, ProblemDiscussion
redirecting to files, Problem
separator character, changing, ProblemDiscussion
private data/methods
caching instances within, Discussion
naming conventions for, ProblemDiscussion
probability distributions (random module), Discussion
process pools, GIL and, Solution, Discussion
ProcessPoolExecutor class (futures module), ProblemDiscussion
process_time() function (time class), Discussion, Discussion
program crashes, debugging, Discussion
program profiling, Problem
property attributes (classes)
delegating, ProblemDiscussion
extending in subclasses, ProblemDiscussion
repetitive definitions for, ProblemDiscussion
@property decorator, Discussion, Discussion
proxies, delegating attributes with, Solution, Discussion
public-facing services, Discussion
put() method (queue module), Solution, Discussion
pwd module, Discussion
PyArg_ParseTuple() function (C extensions), Discussion
converting string encoding with, Discussion
PyBuffer_GetBuffer() method (Py_buffer object), Discussion
PyBuffer_Release() method (Py_buffer object), Discussion
PyCallable_Check() function (C extensions), Discussion
PyCapsule_GetPointer() function (C extensions), Discussion
PyCapsule_Import() function (C extensions), Discussion
PyCapsule_New() function (C extensions), Discussion
PyCapsule_SetDestructor() function (C extensions), Discussion
PyErr_Occurred() function (C extensions), Discussion
PyFile_FromFd() function (C extensions), ProblemDiscussion
PyFloat_AsDouble() function (C extensions), Discussion
PyFloat_Check() function (C extensions), Discussion
PyGILState_Ensure() function (C extensions), Discussion, Solution
PyGILState_Release() function (C extensions), Discussion, Solution
PyIter_Next() function (C extensions), ProblemDiscussion
PyObject data type (C extension)
filenames, passing with, ProblemDiscussion
PyObject_BuildValue function (C extensions), Discussion
PyObject_Call() function (C extensions), Discussion
file-like objects and, Discussion
PyObject_GetIter() function (C extensions), ProblemDiscussion
PyParsing, Discussion, Discussion
PyPy, Solution
PySequence_Length() function (C extensions), Discussion
pySerial package, ProblemDiscussion
Python for Data Analysis (McKinney), Discussion
Python Package Index, Solution
Python syntax vs. JSON, Discussion
PYTHONPATH environment variable, Solution
pytz module, ProblemDiscussion
PyUnicode_FromWideChar() function (C extensions)
C strings, converting to Python objects, ProblemDiscussion
pyvenv command, ProblemDiscussion
Py_BEGIN_ALLOW_THREADS (Py objects), Problem
Py_BuildValue() function (C extensions), Discussion
C strings, converting to Python objects, ProblemDiscussion
Py_DECREF() function (C extensions), Discussion
Py_END_ALLOW_THREADS (Py objects), Problem
Py_XDECREF() function (C extensions), Discussion

Q

qsize() method (queue module), Discussion
queue module, ProblemDiscussion
queues
bounding, Discussion
structures, deque() and, Discussion
quote() function (shlex class), Solution

R

race conditions, avoiding, ProblemDiscussion
raise from statement, Solution, Discussion
None modifier, Solution
raise statement, Solution, Solution
randint() function (random module), Solution
random module, ProblemDiscussion
random() function (random module), Solution
re module
compile() function, Discussion
DOTALL flag, Discussion
IGNORECASE flag, Solution
pattern matching and, SolutionDiscussion
patterns, naming, Solution
scanner() method, Solution
search/replace text and, ProblemDiscussion
split() method, ProblemDiscussion
sub() function, Solution
Unicode text and, ProblemDiscussion
read() function, Discussion
file-like C objects and, ProblemDiscussion
readability, naming slices for, ProblemDiscussion
readinto() method (files), Discussion
reading into mutable buffers with, ProblemDiscussion
recursion, Discussion
getrecursionlimit() function (sys module), Discussion
recursive descent parsers, ProblemDiscussion
limitations on, Discussion
recvfrom() method (socket module), Discussion
recv_handle() function (reduction module), ProblemDiscussion
recv_into() function (socket module), Discussion, Discussion
redirection, Problem
regex module, Discussion
register() function (atexit module), Discussion
register_function() method (XML-RPC), Discussion
regular expressions
* (star) operator and, Solution
? (question mark) modifier and, Solution
greedy vs. nongreedy, ProblemDiscussion
matching multiple lines, ProblemDiscussion
newline support in, ProblemDiscussion
on byte strings, Solution
order of tokens in, Discussion
pattern matching and, SolutionDiscussion
re.split() method and, Discussion
regex module for, Discussion
shortest match with, ProblemDiscussion
stripping characters with, Discussion
Unicode and, ProblemDiscussion
relational databases, ProblemDiscussion
connecting to, Solution
cursors, creating, Solution
relative imports vs. absolute names (modules), Discussion
relativedelta() function (dateutil module), Discussion
reload() function (imp module), ProblemDiscussion, Discussion
remote machines
loading modules from, ProblemDiscussion
XML-RPC, ProblemDiscussion
remote procedure calls (RPC), ProblemDiscussion
exception handling with, Discussion
remove() method (ElementTree module), Discussion
replace() method (date module), Discussion
replace() method (datetime module), Discussion
_replace() method (namedtuple object), Discussion
replace() method (str type), Discussion, Solution
performance and, Discussion
search/replace text and, Solution
repr() function (built-in), Solution
request module (urllib module), SolutionDiscussion
client package vs., Discussion
requests package (urllib module)
return values of, Solution
reraising exceptions, Problem
reserved words, clashing with, Discussion
resource forks, Discussion
resource management, Discussion
resource module, Solution
ResourceWarning argument (warn() function), Solution
REST-base interface, ProblemDiscussion
testing, Solution
restricting CPU time, Solution
result() method (ProcessPoolExecutor class), Discussion
reverse iteration, ProblemDiscussion
reversed() function, ProblemDiscussion
rjust() method (str type), Solution
RLock objects (threading module), Discussion
round() function, ProblemDiscussion
rounding numbers, ProblemDiscussion
RSS feeds, parsing, Solution
rstrip() method (str type), Solution
RTS-CTS handshaking, Discussion
RuntimeWarning argument (warn() function), Solution

S

sample() function (random module), Solution
sanitizing text, ProblemDiscussion
scanner() method (re module), Solution
search
for shortest match with regular expressions, ProblemDiscussion
matching multiple lines, ProblemDiscussion
nlargest()/nsmallest() functions (heapq module), ProblemDiscussion
noncapture groups, Solution
normalization of Unicode text and, Discussion
visitor pattern and, Solution
search/replace text, ProblemDiscussion
case insensitive, ProblemDiscussion
security
import statement and, Solution
pickle and, Discussion
RPCs and, Discussion
SSL certificates and, Solution
seed() function (random module), Discussion
segmentation faults, ProblemDiscussion
select() function (event driven I/O), Solution
self-signed certificates (SSL), Discussion
Semaphore objects (threading module), Discussion, Discussion
send() function (socket module), Discussion
send() method (generators), Discussion
sendmsg() method (socket module), Discussion
sendto() method (socket module), Discussion
send_handle() function (reduction module), ProblemDiscussion
Sequence class (collections module), Solution
sequences
filtering elements of, ProblemDiscussion
flattening nested, ProblemDiscussion
iterating over multiple, simultaneously, ProblemDiscussion
mapping names to elements of, ProblemDiscussion
most frequently occurring item in, ProblemDiscussion
removing duplicates from, ProblemDiscussion
unpacking, ProblemDiscussion
serial ports, communicating with, ProblemDiscussion
serve_forever() method (XML-RPC), Discussion
Set class (collections module), Solution
__set__() method (descriptors), Solution
in data models, Discussion
setattr() method, Discussion
__setattr__() method (delegation), Discussion
setrlimit() function, Discussion
setsid() function (os module), Discussion
setup.py file, Solution, Solution
distributing packages and, Solution
set_trace() function (pdb module), SolutionDiscussion
shell, Solution
shell scripts, Utility Scripting and System Administration
shelling out, Problem
shuffle() function (random module), Solution
shutil module
archives and, Problem
copying files/directories with, Solution
sig module, DiscussionDiscussion
signature objects, ProblemDiscussion
signature() function (inspect), Discussion
SIGXCPU signal, Solution
simple scripts, Problem
simplefilter() function (warnings class), Discussion
SimpleXMLRPCServer (XML-RPC), Discussion
site-packages directories, Solution
virtual environments vs., ProblemDiscussion
skip() decorator, Discussion
skipIf() function (unittest module), Discussion
skipping test failures, Problem
skipUnless() function (unittest module), Discussion
slice() object, Discussion
slices, naming, ProblemDiscussion
__slots__ attribute
classes with, Discussion
memory management and, Solution
socket module, Discussion
ipaddress module and, Discussion
sending datagrams with, Discussion
socketpair() function (Unix), Solution
sockets
large arrays, sending/receiving, Discussion
setting options on, Discussion
threads and, Solution
socketserver module
implementing TCP servers with, ProblemDiscussion
UDP server, implementing, ProblemDiscussion
sorted() function
and objects without comparison support, ProblemDiscussion
itemgetter() function, Discussion
sorting
dictionaries, ProblemDiscussion
dictionaries by common key, ProblemDiscussion
finding largest/smallest N items, ProblemDiscussion
groupby() function and, Discussion
itemgetter function (operator module), Solution
objects without comparison support, ProblemDiscussion
sort_keys argument (json.dumps() function), Discussion
source file vs. config file, Discussion
special characters, escaping, Discussion
split() method (re object), ProblemDiscussion
split() method (str type), ProblemDiscussion
SQLAlchemy, Discussion
sqlite3 module, Solution
sqrt() function (math module), Selectively eliminate attribute access
ssh session, Discussion
SSL, ProblemDiscussion
certificate authorities, Discussion
self-signed certificates, Discussion
ssl module, ProblemDiscussion
random module vs., Discussion
Stackless Python, Discussion
stack_size() function (threading module), Discussion
star expressions
discarding values from, Discussion
unpacking iterables and, Solution
start attribute (slice), Discussion
start() method (Thread class), Solution
startswith() method (str type), Solution
pattern matching with, Solution
start_response argument (WSGI), Discussion
state
capturing with closures, SolutionDiscussion
carrying with callback functions, ProblemDiscussion
implementing for objects/machines, ProblemDiscussion
of mixins, Discussion
thread-specific, storing, ProblemDiscussion
states, generators with extra, ProblemDiscussion
static methods, applying decorators to, ProblemDiscussion
@staticmethod decorator, Discussion
decorating class methods with, ProblemDiscussion
__func__ attribute and, Discussion
stdout object (sys), changing encoding on, Solution
step attribute (slice), Discussion
stop attribute (slice), Discussion
StopIteration exception, Solution
str type
converting to datetime objects, ProblemDiscussion
decode() method, Solution
encode() method, Solution
endswith() method, Solution
format() function, Solution
join() method, ProblemDiscussion
lower() method, Solution
pattern matching with, Solution
replace() method, Solution
sanitizing text with, ProblemDiscussion
split() method, ProblemDiscussion
startswith() method, Solution
stripping unwanted characters from, ProblemDiscussion
translate() method, Solution
upper() method, Solution
str() function, Solution
StreamRequestHandler (socketserver module), SolutionDiscussion
string module, Discussion
string templates and code readability, Discussion
StringIO object (io module), Discussion
StringIO() object (io module), ProblemDiscussion
strings, Strings and TextDiscussion
aligning, ProblemDiscussion
bad encoding in C/Python extensions, ProblemDiscussion
C, converting to Python objects, ProblemDiscussion
calling object methods when named in, ProblemDiscussion
combining, ProblemDiscussion
concatenating, ProblemDiscussion
converting to dates/times, ProblemDiscussion
database API and, Discussion
I/O operations, performing on, ProblemDiscussion
interpolating variables in, ProblemDiscussion
matching start/end text of, ProblemDiscussion
null-terminated, passing to C, ProblemDiscussion
splitting on delimiters, ProblemDiscussion
stripping unwanted characters from, ProblemDiscussion
Unicode, passing to C modules, ProblemDiscussion
unpacking, Discussion
strip() method (str type), ProblemDiscussion
strptime() method (datetime module), Discussion
struct module, ProblemDiscussion
nested binary records, reading, ProblemDiscussion
packing/unpacking integers from byte strings and, Discussion
structure codes for, Discussion
variable-sized binary records, reading, ProblemDiscussion
structures (data type), ProblemDiscussion
sub() function (re module), Solution, Discussion
search/replace text and, Solution
submit() operation (ProcessPoolExecutor class), Discussion
subn() method (re module), Solution
subprocess module, Discussion
subsitution callback functions, Solution
super() function, ProblemDiscussion
class decorators and, Discussion
coding conventions and, Discussion
extending properties in subclasses and, Discussion
mixin classes and, Discussion
surrogate encoding, ProblemDiscussion
Swig, Discussion, ProblemDiscussion
headers and, Discussion
symbolic links, Solution
broken, Discussion
SyntaxWarning argument (warn() function), Solution
sys.arg value, Discussion
sys.argv (commaand line arguments), Discussion
sys.metapath object, Solution, Discussion
extending import operations and, Discussion
sys.modules dictionary, Discussion
sys.path
adding directories to, ProblemDiscussion
site-packages directories, Solution
sys.path_hooks variable (importers), Solution
sys.path_importer_cache object, Discussion
sys.stderr, Solution
sys.stdout, ProblemDiscussion
system-exiting exceptions, Discussion
SystemExit exception, Solution, SolutionDiscussion

T

tag attribute (ElementTree module), Discussion
tarfile compression format, Discussion
TCP servers, ProblemDiscussion
event-driven I/O implementation, Solution
tempfile module, ProblemDiscussion
temporary files, ProblemDiscussion
TemporaryDirectory() method (tempfile module), Solution
TemporaryFile (tempfile module), Solution
terminal, finding size of, Discussion, Problem
test failures, Problem
TestCase classes (TestLoader module), Discussion
testing
ouput sent to stdout, Testing, Debugging, and Exceptions
output, logging to file, Problem
unit tests for exceptions, Problem
TestLoader class (unitest module), Discussion
text attribute (ElementTree module), Discussion
text data
encoding, ProblemDiscussion
reading/writing, ProblemDiscussion
text manipulation, Strings and TextDiscussion
aligning strings, ProblemDiscussion
case insensitive search/replace, ProblemDiscussion
combining/concatenating, ProblemDiscussion
HTML entities, handling in text, ProblemDiscussion
interpolating variables, ProblemDiscussion
matching start/end of strings, ProblemDiscussion
of Unicode with regular expressions, ProblemDiscussion
on byte strings, ProblemDiscussion
parsers, implementing, ProblemDiscussion
pattern matching, ProblemDiscussion
reformatting into columns, ProblemDiscussion
sanitizing, ProblemDiscussion
search/replace, ProblemDiscussion
stripping unwanted characters, ProblemDiscussion
tokenizing, ProblemDiscussion
wildcard matcing, ProblemDiscussion
XML entities, handling in text, ProblemDiscussion
TextIOWrapper object (io module), ProblemDiscussion
textwrap module, ProblemDiscussion
Thread class (threading module), ProblemDiscussion
thread pools
GIL and, Discussion
queues and, Solution
threading module, Discussion
Condition object, Discussion
Event object, ProblemDiscussion
local() method, ProblemDiscussion
Lock objects, ProblemDiscussion
Semaphore objects, Discussion
stack_size() function, Discussion
ThreadingMixIn class (socketserver module), Discussion
ThreadingTCPServer objects (socketserver module), Discussion
ThreadingUDPServer objects (socketserver module), Discussion
ThreadPoolExecutor class (futures module), ProblemDiscussion
threads
actor model and, ProblemDiscussion
C/Python, mixing, ProblemDiscussion
communication between, ProblemDiscussion
creating/destroying, ProblemDiscussion
daemonic, Solution
deadlocks between, ProblemDiscussion
generators as alternative to, ProblemDiscussion
locking critical sections, ProblemDiscussion
nonblocking, supporting with queues, Discussion
polling multiple queues, ProblemDiscussion
pools of, ProblemDiscussion
priority queues and, Discussion
queue module and, ProblemDiscussion
race conditions, avoiding, ProblemDiscussion
status of, finding, ProblemDiscussion
storing state of, ProblemDiscussion
timeouts, supporting with queues, Discussion
throw() method (generators), Discussion
time command, Solution
time module, Discussion
time zones, ProblemDiscussion
country_timezones dictionary (pytz module), Discussion
UTC time, Discussion
time() function (time class), Discussion
time, operations on, ProblemDiscussion
converting strings for, ProblemDiscussion
date calculations, ProblemDiscussion
date ranges, finding, ProblemDiscussion
pytz module, ProblemDiscussion
time conversions, ProblemDiscussion
time zones, manipulating, ProblemDiscussion
UTC time, Discussion
timedelta object (datetime module), Solution, DiscussionDiscussion
timeit module, Solution, Discussion
timeouts, supporting with queues, Discussion
Timer class, Discussion
tokenizing and DOTALL flag (re module), Discussion
tokens streams, filtering, Solution
tostring() function (ElementTree module), Solution
total_ordering decorator (functools module), ProblemDiscussion
to_bytes() method (int module), Solution
traceback, segmentation faults and, ProblemDiscussion
traceback.print_stack() function, Solution
translate() method (str type), Discussion, Solution
numerical output and, Discussion
performance and, Discussion
transmitting data, Discussion
tree structures, memory management of, ProblemDiscussion
tree traversal, Solution, Discussion
TTYs, Problem, Discussion
tuples
and endswith()/startswith() methods, Solution
as return values, Problem
relational databases and, ProblemDiscussion
unpacking, Discussion
Twisted package, Discussion
type checking (data)
abstract base classes and, ProblemDiscussion
forcing with decorator functions, ProblemDiscussion
type systems, ProblemDiscussion
%typemap directive (Swig), Discussion
types module, ProblemDiscussion

U

UDP server, ProblemDiscussion
event-driven I/O implementation, Solution
UDPServer class, Discussion
umask() function (os module), Discussion
unescape() function (xml.sax.saxutils module), Discussion
Unicode, ProblemDiscussion
bad encoding in C/Python extensions, ProblemDiscussion
IGNORECASE flag and matching, Discussion
regular expressions and, ProblemDiscussion
strings, passing to C modules, ProblemDiscussion
unicodedata module, Solution
uniform() function (random module), Discussion
unittest module, Testing, Debugging, and Exceptions, DiscussionDiscussion
Unix, Discussion
commands, Solution
find utility, Discussion
unpack() function (struct module), Discussion
binary data and, Solution
unpacking
archives, Problem
discarding values while, Discussion
enumerate() function and, Discussion
integers from byte string, ProblemDiscussion
iterables into separate variables, ProblemDiscussion
iterables of arbitrary length, ProblemDiscussion
sequences into separate variables, ProblemDiscussion
star expressions and, Solution
unpack_archive() function (shutil module), Solution
unpack_from() method (struct module), Discussion
uploading using requests module, Solution
upper() method (str type), Solution
urllib module, Solution, ProblemDiscussion
urlopen() function (urllib module), DiscussionDiscussion
import statements vs., Solution
sending query parameters with, Solution
UserWarning argument (warn() function), Solution
UTC time, Discussion

V

validation of data, abstract base classes and, ProblemDiscussion
ValueError, Solution
unpacking and, Solution
values() method (dictionaries), Discussion, Discussion
variables
interpolating, in strings, ProblemDiscussion
understand locality of, Selectively eliminate attribute access
vars() method, Solution
virtual environments, ProblemDiscussion
visitor pattern
implementing with recursion, ProblemDiscussion
implementing without recursion, ProblemDiscussion

W

walk() function (os module), Solution
warn() function (warning class), Solution
warning messages, issuing, Discussion
warning module, Discussion
warning() function (logging module), Solution
watchdog timers, Discussion
wchar_t * declarations (C), ProblemDiscussion
converting to Python objects, Solution
weak references and caching instances, Discussion
weakref module, Solution, Discussion
web browsers, launching, Discussion
web programming, Network and Web ProgrammingDiscussion
HTTP service clients, ProblemDiscussion
REST-base interface, ProblemDiscussion
urllib module and, ProblemDiscussion
webbrowser module, Solution
WebOb, Discussion
while loops vs. iter() function, ProblemDiscussion
wildcard matcing, strings, ProblemDiscussion
Windows, Discussion
C extension modules and, Solution
with nogil: statement (Cython), Discussion
with statement, ProblemDiscussion, Discussion, Discussion
contextmanager decorator and, Discussion
Lock objects and, ProblemDiscussion
Semaphore objects and, Discussion
wraparound() decorator (Cython), Discussion
__wrapped__ attribute, Discussion
@wraps decorator (functools)
function metadata and, ProblemDiscussion
unwrapping, ProblemDiscussion
WSGI standard, ProblemDiscussion
return value for apps based on, Discussion

X

XML entities
handling in text, ProblemDiscussion
replacing, Solution
XML files
dictionaries, converting to, ProblemDiscussion
extracting data from, ProblemDiscussion
modifying, ProblemDiscussion
parsing, ProblemDiscussion
incrementally, ProblemDiscussion
with namespaces, ProblemDiscussion
rewriting, ProblemDiscussion
tags, specifying, Discussion
XML-RPC, ProblemDiscussion
adding SSL to, Solution
data types handled by, Discussion
xml.etree.ElementTree module (see ElementTree module)
xml.sax.saxutils module, Discussion
XMLNamespaces class, Discussion

Y

yield from statement, ProblemDiscussion
yield statement, Discussion, Discussion
behavior in generators, Discussion
concurrency implementations and, ProblemDiscussion
generators and, Discussion
search functions and, Discussion

Z

ZeroMQ, Discussion
zip files as runnable scripts, ProblemDiscussion
zip() method (dictionaries), ProblemDiscussion, ProblemDiscussion
zipfile compression format, Discussion