Ebook Fluent Python Luciano Ramalho Online PDF All Chapter

Download as pdf or txt
Download as pdf or txt
You are on page 1of 69

Fluent Python Luciano Ramalho

Visit to download the full and correct content document:


https://ebookmeta.com/product/fluent-python-luciano-ramalho/
More products digital (pdf, epub, mobi) instant
download maybe you interests ...

Fluent Python, 2nd Edition Luciano Ramalho

https://ebookmeta.com/product/fluent-python-2nd-edition-luciano-
ramalho/

Fluent Python 2nd Edition Luciano Ramalho

https://ebookmeta.com/product/fluent-python-2nd-edition-luciano-
ramalho-2/

Fluent Python, 2nd Edition Luciano Ramalho

https://ebookmeta.com/product/fluent-python-2nd-edition-luciano-
ramalho-3/

Fluent Python Clear Concise and Effective Programming


12th Early Release 2nd Luciano Ramalho

https://ebookmeta.com/product/fluent-python-clear-concise-and-
effective-programming-12th-early-release-2nd-luciano-ramalho/
Fluent React (5th Early Release) 1st Edition Tejas
Kumar

https://ebookmeta.com/product/fluent-react-5th-early-release-1st-
edition-tejas-kumar/

The Built Work of Giuseppe Pizzigoni Luciano Motta

https://ebookmeta.com/product/the-built-work-of-giuseppe-
pizzigoni-luciano-motta/

Tourism in Natural and Agricultural Ecosystems in the


Eighteenth and Nineteenth Centuries 1st Edition Martino
Lorenzo Maffi Fagnani Luciano Luciano Maffi

https://ebookmeta.com/product/tourism-in-natural-and-
agricultural-ecosystems-in-the-eighteenth-and-nineteenth-
centuries-1st-edition-martino-lorenzo-maffi-fagnani-luciano-
luciano-maffi/

Fluent C: Principles, Practices, and Patterns 1st


Edition Christopher Preschern

https://ebookmeta.com/product/fluent-c-principles-practices-and-
patterns-1st-edition-christopher-preschern/

Beginning Jakarta EE Web Development, 3rd Edition


Luciano Manelli

https://ebookmeta.com/product/beginning-jakarta-ee-web-
development-3rd-edition-luciano-manelli/
Fluent Python

Luciano Ramalho

Fluent Python

by Luciano Ramalho

Copyright © 2014 Luciano Ramalho. All rights reserved.

Printed in the United States of America.

Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North,


Sebastopol, CA 95472.

O’Reilly books may be purchased for educational, business, or sales


promotional use. Online editions are also available for most titles (
http://safaribooksonline.com). For more information, contact our
corporate/

institutional sales department: 800-998-9938 or


[email protected].

Editors: Meghan Blanchette and Rachel Roumeliotis

Indexer: FIX ME!

Production Editor: FIX ME!

Cover Designer: Karen Montgomery

Copyeditor: FIX ME!

Interior Designer: David Futato

Proofreader: FIX ME!

Illustrator: Rebecca Demarest


March 2015:

First Edition

Revision History for the First Edition:

2014-09-30: Early release revision 1

2014-12-05: Early release revision 2

2014-12-18: Early release revision 3

2015-01-27: Early release revision 4

2015-02-27: Early release revision 5

2015-04-15: Early release revision 6

2015-04-21: Early release revision 7

See http://oreilly.com/catalog/errata.csp?isbn=9781491946008 for


release details.

Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo
are registered trademarks of O’Reilly Media, Inc. !!FILL THIS IN!! and
related trade dress are trademarks of O’Reilly Media, Inc.

Many of the designations used by manufacturers and sellers to


distinguish their products are claimed as trademarks. Where those
designations appear in this book, and O’Reilly Media, Inc. was aware
of a trademark claim, the designations have been printed in caps or
initial caps.

While every precaution has been taken in the preparation of this


book, the publisher and authors assume no responsibility for errors or
omissions, or for damages resulting from the use of the information
contained herein.
ISBN: 978-1-491-94600-8

[?]

Para Marta, com todo o meu amor.

Table of Contents

Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . xv

Part I. Prologue

1. The Python Data Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


.........................3

A Pythonic Card Deck 4

How special methods are used 8

Emulating numeric types 9

String representation 11

Arithmetic operators 11

Boolean value of a custom type 12

Overview of special methods 12

Why len is not a method 14

Chapter summary 14

Further reading 15

Part II. Data structures


2. An array of sequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 19

Overview of built-in sequences 20

List comprehensions and generator expressions 21

List comprehensions and readability 21

Listcomps versus map and filter 23

Cartesian products 23

Generator expressions 25

Tuples are not just immutable lists 26

Tuples as records 26

Tuple unpacking 27

Nested tuple unpacking 29

Named tuples 30

Tuples as immutable lists 32

Slicing 33

Why slices and range exclude the last item 33

Slice objects 34

Multi-dimensional slicing and ellipsis 35

Assigning to slices 36
Using + and * with sequences 36

Building lists of lists 37

Augmented assignment with sequences 38

A += assignment puzzler 40

list.sort and the sorted built-in function 42

Managing ordered sequences with bisect 44

Searching with bisect 44

Inserting with bisect.insort 46

When a list is not the answer 47

Arrays 48

Memory views 51

NumPy and SciPy 52

Deques and other queues 54

Chapter summary 57

Further reading 58

3. Dictionaries and sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . . . 63

Generic mapping types 64

dict comprehensions 66

Overview of common mapping methods 66


Handling missing keys with setdefault 68

Mappings with flexible key lookup 70

defaultdict: another take on missing keys 71

The __missing__ method 72

Variations of dict 75

Subclassing UserDict. 76

Immutable mappings 77

Set theory 79

set literals 80

set comprehensions 81

Set operations 82

dict and set under the hood 85

A performance experiment 85

Hash tables in dictionaries 87

vi | Table of Contents

Practical consequences of how dict works 90

How sets work — practical consequences 93

Chapter summary 93

Further reading 94
4. Text versus bytes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 97

Character issues 98

Byte essentials 99

Structs and memory views 102

Basic encoders/decoders 103

Understanding encode/decode problems 105

Coping with UnicodeEncodeError 105

Coping with UnicodeDecodeError 106

SyntaxError when loading modules with unexpected encoding 107

How to discover the encoding of a byte sequence 108

BOM: a useful gremlin 109

Handling text files 110

Encoding defaults: a madhouse 113

Normalizing Unicode for saner comparisons 116

Case folding 119

Utility functions for normalized text matching 120

Extreme “normalization”: taking out diacritics 121

Sorting Unicode text 124

Sorting with the Unicode Collation Algorithm 126


The Unicode database 126

Dual mode str and bytes APIs 128

str versus bytes in regular expressions 129

str versus bytes on os functions 130

Chapter summary 132

Further reading 133

Part III. Functions as objects

5. First-class functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 139

Treating a function like an object 140

Higher-order functions 141

Modern replacements for map, filter and reduce 142

Anonymous functions 143

The seven flavors of callable objects 144

User defined callable types 145

Function introspection 147

Table of Contents | vii

From positional to keyword-only parameters 148

Retrieving information about parameters 150

Function annotations 154


Packages for functional programming 156

The operator module 156

Freezing arguments with functools.partial 159

Chapter summary 161

Further reading 162

6. Design patterns with first-class functions. . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . 167

Case study: refactoring Strategy 168

Classic Strategy 168

Function-oriented Strategy 172

Choosing the best strategy: simple approach 175

Finding strategies in a module 176

Command 177

Chapter summary 179

Further reading 180

7. Function decorators and closures. . . . . . . . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . . 183

Decorators 101 184

When Python executes decorators 185

Decorator-enhanced Strategy pattern 187

Variable scope rules 189


Closures 192

The nonlocal declaration 195

Implementing a simple decorator 197

How it works 198

Decorators in the standard library 200

Memoization with functools.lru_cache 200

Generic functions with single dispatch 202

Stacked decorators 205

Parametrized Decorators 206

A parametrized registration decorator 206

The parametrized clock decorator 209

Chapter summary 211

Further reading 212

viii | Table of Contents

Part IV. Object Oriented Idioms

8. Object references, mutability and recycling. . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . 219

Variables are not boxes 220

Identity, equality and aliases 221

Choosing between == and is 223


The relative immutability of tuples 224

Copies are shallow by default 225

Deep and shallow copies of arbitrary objects 227

Function parameters as references 229

Mutable types as parameter defaults: bad idea 230

Defensive programming with mutable parameters 232

del and garbage collection 234

Weak references 236

The WeakValueDictionary skit 237

Limitations of weak references 239

Tricks Python plays with immutables 240

Chapter summary 242

Further reading 243

9. A Pythonic object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 247

Object representations 248

Vector class redux 248

An alternative constructor 251

classmethod versus staticmethod 252

Formatted displays 253


A hashable Vector2d 257

Private and “protected” attributes in Python 263

Saving space with the __slots__ class attribute 265

The problems with __slots__ 267

Overriding class attributes 268

Chapter summary 270

Further reading 271

10. Sequence hacking, hashing and slicing. . . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . . 277

Vector: a user-defined sequence type 278

Vector take #1: Vector2d compatible 278

Protocols and duck typing 281

Vector take #2: a sliceable sequence 282

How slicing works 283

A slice-aware __getitem__ 285

Table of Contents | ix

Vector take #3: dynamic attribute access 286

Vector take #4: hashing and a faster == 290

Vector take #5: formatting 296

Chapter summary 303


Further reading 304

11. Interfaces: from protocols to ABCs. . . . . . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . . . 309

Interfaces and protocols in Python culture 310

Python digs sequences 312

Monkey-patching to implement a protocol at run time 314

Waterfowl and ABCs 316

Subclassing an ABC 321

ABCs in the standard library. 323

ABCs in collections.abc 323

The numbers tower of ABCs 324

Defining and using an ABC 325

ABC syntax details 330

Subclassing the Tombola ABC 331

A virtual subclass of Tombola 333

How the Tombola subclasses were tested 336

Usage of register in practice 339

Geese can behave as ducks 340

Chapter summary 341

Further reading 343


12. Inheritance: for good or for worse. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 349

Subclassing built-in types is tricky 350

Multiple inheritance and method resolution order 353

Multiple inheritance in the real world 358

Coping with multiple inheritance 360

1. Distinguish interface inheritance from implementation inheritance


361

2. Make interfaces explicit with ABCs 361

3. Use mixins for code reuse 361

4. Make mixins explicit by naming 361

5. An ABC may also be a mixin; the reverse is not true 361

6. Don’t subclass from more than one concrete class 362

7. Provide aggregate classes to users 362

8. “Favor object composition over class inheritance.” 363

Tkinter: the good, the bad and the ugly 363

A modern example: mixins in Django generic views 364

Chapter summary 368

Further reading 369

x | Table of Contents
13. Operator overloading: doing it right. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 373

Operator overloading 101 374

Unary operators 374

Overloading + for vector addition 377

Overloading * for scalar multiplication 382

Rich comparison operators 386

Augmented assignment operators 390

Chapter summary 394

Further reading 395

Part V. Control flow

14. Iterables, iterators and generators. . . . . . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . . . 403

Sentence take #1: a sequence of words 404

Why sequences are iterable: the iter function 406

Iterables versus iterators 407

Sentence take #2: a classic iterator 411

Making Sentence an iterator: bad idea 413

Sentence take #3: a generator function 414

How a generator function works 415

Sentence take #4: a lazy implementation 418


Sentence take #5: a generator expression 419

Generator expressions: when to use them 421

Another example: arithmetic progression generator 422

Arithmetic progression with itertools 425

Generator functions in the standard library 426

New syntax in Python 3.3: yield from 435

Iterable reducing functions 436

A closer look at the iter function 438

Case study: generators in a database conversion utility 439

Generators as coroutines 441

Chapter summary 442

Further reading 442

15. Context managers and else blocks. . . . . . . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . 449

Do this, then that: else blocks beyond if 450

Context managers and with blocks 452

The contextlib utilities 456

Using @contextmanager 457

Chapter summary 461

Further reading 461


Table of Contents | xi

16. Coroutines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 465

How coroutines evolved from generators 466

Basic behavior of a generator used as a coroutine 466

Example: coroutine to compute a running average 470

Decorators for coroutine priming 471

Coroutine termination and exception handling 473

Returning a value from a coroutine 477

Using yield from 479

The meaning of yield from 485

Use case: coroutines for discrete event simulation 491

About discrete event simulations 491

The taxi fleet simulation 492

Chapter summary 500

Further reading 502

17. Concurrency with futures. . . . . . . . . . . . . . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . . . 507

Example: Web downloads in three styles 507

A sequential download script 509

Downloading with concurrent.futures 511


Where are the futures? 513

Blocking I/O and the GIL 517

Launching processes with concurrent.futures 517

Experimenting with Executor.map 519

Downloads with progress display and error handling 522

Error handling in the flags2 examples 527

Using futures.as_completed 529

Threading and multiprocessing alternatives. 532

Chapter Summary 532

Further reading 533

18. Concurrency with asyncio. . . . . . . . . . . . . . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . 539

Thread versus coroutine: a comparison 541

asyncio.Future: non-blocking by design 547

Yielding from futures, tasks and coroutines 548

Downloading with asyncio and aiohttp 550

Running circles around blocking calls 554

Enhancing the asyncio downloader script 556

Using asyncio.as_completed 557

Using an executor to avoid blocking the event loop 562


From callbacks to futures and coroutines 564

Doing multiple requests for each download 566

Writing asyncio servers 569

xii | Table of Contents

An asyncio TCP server 570

An aiohttp Web server 575

Smarter clients for better concurrency 578

Chapter Summary 579

Further reading 580

Part VI. Metaprogramming

19. Dynamic attributes and properties. . . . . . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . . . 587

Data wrangling with dynamic attributes 588

Exploring JSON-like data with dynamic attributes 590

The invalid attribute name problem 593

Flexible object creation with __new__ 594

Restructuring the OSCON feed with shelve 596

Linked record retrieval with properties 600

Using a property for attribute validation 606

LineItem take #1: class for an item in an order 606


LineItem take #2: a validating property 607

A proper look at properties 609

Properties override instance attributes 610

Property documentation 612

Coding a property factory 613

Handling attribute deletion 616

Essential attributes and functions for attribute handling 618

Special attributes that affect attribute handling 618

Built-in functions for attribute handling 618

Special methods for attribute handling 619

Chapter summary 621

Further reading 621

20. Attribute descriptors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . . . 627

Descriptor example: attribute validation 627

LineItem take #3: a simple descriptor 628

LineItem take #4: automatic storage attribute names 633

LineItem take #5: a new descriptor type 639

Overriding versus non-overriding descriptors 642

Overriding descriptor 644


Overriding descriptor without __get__ 645

Non-overriding descriptor 646

Overwriting a descriptor in the class 647

Methods are descriptors 648

Table of Contents | xiii

Descriptor usage tips 650

1. Use property to keep it simple 650

2. Read-only descriptors require __set__ 650

3. Validation descriptors can work with __set__ only 650

4. Caching can be done efficiently with __get__ only 651

5. Non-special methods can be shadowed by instance attributes 651

Descriptor docstring and overriding deletion 652

Chapter summary 653

Further reading 653

21. Class metaprogramming. . . . . . . . . . . . . . . . . . . . . . . . . . . .


. . . . . . . . . . . . . . . . . . . . . . . 657

A class factory 658

A class decorator for customizing descriptors 661

What happens when: import time versus run time 663

The evaluation time exercises 664


Metaclasses 101 668

The metaclass evaluation time exercise 670

A metaclass for customizing descriptors 674

The metaclass __prepare__ special method 676

Classes as objects 678

Chapter summary 679

Further reading 680

Afterword. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 685

A. Support scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 689

Python jargon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 717

xiv | Table of Contents

Preface

Here’s the plan: when someone uses a feature you don’t understand,
simply shoot them.

This is easier than learning something new, and before too long the
only living coders

will be writing in an easily understood, tiny subset of Python 0.9.6


<wink>1.

— Tim Peters

legendary core developer and author of The Zen of Python


“Python is an easy to learn, powerful programming language.” Those
are the first words

of the official Python Tutorial. That is true, but there is a catch:


because the language is easy to learn and put to use, many
practicing Python programmers leverage only a

fraction ot its powerful features.

An experienced programmer may start writing useful Python code in


a matter of hours.

As the first productive hours become weeks and months, a lot of


developers go on

writing Python code with a very strong accent carried from languages
learned before.

Even if Python is your first language, often in academia and in


introductory books it is

presented while carefully avoiding language-specific features.

As a teacher introducing Python to programmers experienced in other


languages, I see

another problem that this book tries to address: we only miss stuff
we know about.

Coming from another language, anyone may guess that Python


supports regular ex‐

pressions, and look that up in the docs. But if you’ve never seen tuple
unpacking or

descriptors before, you will probably not search for them, and may
end up not using
those features just because they are specific to Python.

This book is not an A-Z exhaustive reference of Python. My emphasis


is in the language

features that are either unique to Python or not found in many other
popular languages.

This is also mostly a book about the core language and some of its
libraries. I will rarely

talk about packages that are not in the standard library, even though
the Python package

index now lists more than 53.000 libraries and many of them are
incredibly useful.

1. Message to comp.lang.python, Dec. 23, 2002: “Acrimony in c.l.p.”

xv

XXXtodo

Who This Book Is For

This book was written for practicing Python programmers who want
to become pro‐

ficient in Python 3. If you know Python 2 but are willing to migrate to


Python 3.4 or

later, you should be fine. At this writing the majority of professional


Python program‐

mers are using Python 2, so I took special care to highlight Python 3


features that may

be new to that audience.


However, Fluent Python is about making the most of Python 3.4, and
I do not spell out

the fixes needed to make the code work in earlier versions. Most
examples should run

in Python 2.7 with little or no changes, but in some cases backporting


would require

significant rewriting.

Having said that, I believe this book may be useful even if you must
stick with Python

2.7, because the core concepts are still the same. Python 3 is not a
new language, and

most differences can be learned in an afternoon. What’s New In


Python 3.0 is a good

starting point. Of course, there have been changes after Python 3.0
was released in 2009,

but none as important as those in 3.0.

If you are not sure whether you know enough Python to follow along,
review the topics

of the official Python Tutorial. Topics covered in the tutorial will not
be explained here, except for some features that are new in Python
3.

Who This Book Is Not For

If you are just learning Python, this book is going to be hard to


follow. Not only that, if
you read it too early in your Python journey, it may give you the
impression that every

Python script should leverage special methods and metaprogramming


tricks. Premature

abstraction is as bad as premature optimization.

How This Book is Organized

The core audience for this book should not have trouble jumping
directly to any chapter

in this book. However, I did put some thought into their ordering.

I tried to emphasize using what is available before discussing how to


build your own.

For example, Chapter 2 in Part II covers sequence types that are


ready to use, including some that don’t get a lot of attention, like
collections.deque. Building user-defined

sequences is only addressed in Part IV, where we also see how to


leverage the Abstract

Base Classes (ABC) from collections.abc. Creating your own ABCs is


discussed even

later in Part IV, because I believe it’s important to be comfortable


using an ABC before

writing your own.

xvi | Preface

This approach has a few advantages. First, knowing what is ready to


use can save you from reinventing the wheel. We use existing
collection classes more often than we implement our own, and we
can give more attention to the advanced usage of available

tools by deferring the discussion on how to create new ones. We are


also more likely to

inherit from existing ABCs than to create a new ABC from scratch.
And finally, I believe

it is easier to understand the abstractions after you’ve seen them in


action.

The downside of this strategy are the forward references scattered


throughout the

chapters. I hope these will be easier to tolerate now that you know
why I chose this path.

The chapters are split in 6 parts. This is the idea behind each of
them:

Part I: Prologue

A single chapter about the Python Data Model explaining how the
special methods

(e.g. __repr__) are the key to the consistent behavior of objects of


all types — in a

language that is admired for its consistency. Understanding various


facets of the

data model is the subject of most of the rest of the book, but Chapter
1 provides a high-level overview.

Part II: Data structures


The chapters in this part cover the use of collection types:
sequences, mappings and

sets, as well as the str versus bytes split — the reason for much joy
for Python 3

users and much pain for Python 2 users who have not yet migrated
their code bases.

The main goals are to recall what is already available and to explain
some behavior

that is sometimes surprising, like the reordering of dict keys when we


are not

looking, or the caveats of locale-dependent Unicode string sorting. To


achieve these

goals, the coverage is sometimes high level and wide — when many
variations of

sequences and mappings are presented — and sometimes deep, for


example when

we dive into the hash tables underneath the dict and set types.

Part III: Functions as objects

Here we talk about functions as first-class objects in the language:


what that means,

how it affects some popular design patterns, and how to implement


function dec‐

orators by leveraging closures. Also covered here is the general


concept of callables
in Python, function attributes, introspection, parameter annotations,
and the new

nonlocal declaration in Python 3.

Part IV: Object Oriented Idioms

Now the focus is on building classes. In part II the class declaration


appears in few

examples; part IV presents many classes. Like any OO language,


Python has its

particular set of features that may or may not be present in the


language where you

and I learned class-based programming. The chapters explain how


references work,

what mutability really means, the lifecycle of instances, how to build


your own

collections and ABCs, how to cope with multiple inheritance and how
to implement

operator overloading — when that makes sense.

Preface | xvii

Part V: Control flow

Covered in this part are the language constructs and libraries that go
beyond se‐

quential control flow with conditionals, loops and subroutines. We


start with gen‐
erators, then visit context managers and coroutines, including the
challenging but

powerful new yield from syntax. Part V closes with high level a
introduction to

modern concurrency in Python with collections.futures — using


threads and

processes under the covers with the help of futures — and doing
event-oriented I/

O with asyncio — leveraging futures on top of coroutines and yield


from.

Part VI: Metaprogramming

This part starts with a review of techniques for building classes with
attributes

created dynamically to handle semi-structured data such as JSON


datasets. Next

we cover the familiar properties mechanism, before diving into how


object attribute

access works at a lower level in Python using descriptors. The


relationship between

functions, methods and descriptors is explained. Throughout Part VI,


the step by

step implementation of a field validation library uncovers subtle


issues the lead to

the use of the advanced tools of the last chapter: class decorators
and metaclasses.
Hands-on Approach

Often we’ll use the interactive Python console to explore the


language and libraries. I

feel it is important to emphasize the power of this learning tool,


particularly for those

readers who’ve had more experience with static, compiled languages


that don’t provide

a REPL — read-eval-print-loop.

One of the standard Python testing packages, doctest, works by


simulating console sessions and verifying that the expressions
evaluate to the responses shown. I used

doctest to check most of the code in this book, including the console
listings. You don’t

need to use or even know about doctest to follow along: the key
feature of doctests is

that they look like transcripts of interactive Python console sessions,


so you can easily

try out the demonstrations yourself.

Sometimes I will explain what we want to accomplish by showing a


doctest before the

code that makes it pass. Firmly establishing what is to be done


before thinking about

how to do it helps focus our coding effort. Writing tests first is the
basis of TDD (Test
Driven Development) and I’ve also found it helpful when teaching. If
you are unfamiliar

with doctest, take a look at its documentation and this book’s source
code repository.

You’ll find that you can verify the correctness of most of the code in
the book by typing

python3 -m doctest example_script.py in the command shell of your


OS.

xviii | Preface

Hardware used for timings

The book has some simple benchmarks and timings. Those tests
were performed on

one or the other laptop I used to write the book: a 2011 MacBook
Pro 13” with a 2.7

GHz Intel Core i7 CPU, 8MB of RAM and a spinning hard disk, and a
2014 MacBook

Air 13” with a 1.4 GHZ Intel Core i5 CPU, 4MB of RAM and a solid
state disk. The

MacBook Air has a slower CPU and less RAM, but its RAM is faster
(1600 vs. 1333

MHz) and the SSD is much faster than the HD. In daily usage I can’t
tell which machine

is faster.

Soapbox: my personal perspective


I have been using, teaching and debating Python since 1998, and I
enjoy studying and

comparing programming languages, their design and the theory


behind them. At the

end of some chapters I have added a section called Soapbox with my


own perspective

about Python and other languages. Feel free to skip that if you are
not into such dis‐

cussions. Their content is completely optional.

Python Jargon

I wanted this to be a book not only about Python but also about the
culture around it.

Over more than 20 years of communications, the Python community


has developed its

own particular lingo and acronyms. The Python jargon collects terms
that have special meaning among Pythonistas.

Python version covered

I tested all the code in the book using Python 3.4 — that is, CPython
3.4, i.e. the most

popular Python implementation written in C. There is only one


excpetion: the sidebar

“The new @ infix operator in Python 3.5” on page 385 shows the @
operator which is only supported by Python 3.5.

Almost all code in the book should work with any Python 3.x
compatible interpreter,
including PyPy3 2.4.0 which is compatible with Python 3.2.5. A
notable exception are

the examples using yield from and asyncio, which are only available
in Python 3.3 or

later.

Most code should also work with Python 2.7 with minor changes,
except the Unicode-

related examples in Chapter 4, and the exceptions already noted for


Python 3 versions

earlier than 3.3.

Preface | xix
Conventions Used in This Book

XXXrevise

The following typographical conventions are used in this book:

Italic Indicates new terms, URLs, email addresses, filenames, and file
extensions.

Constant width

Used for program listings, as well as within paragraphs to refer to


program elements

such as variable or function names, databases, data types,


environment variables,
statements, and keywords. Note that when a line break falls within a
con

stant_width term, a hyphen is not added — it could be


misunderstood as part of

the term.

Constant width bold

Shows commands or other text that should be typed literally by the


user.

Constant width italic

Shows text that should be replaced with user-supplied values or by


values deter‐

mined by context.

«Guillemets»

Indicate that the enclosed parameter is optional, eg.: dir(«object») 2

This element signifies a tip or suggestion.

This element signifies a general note.

This element indicates a warning or caution.

2. In the Python docs, square brackets are used for this purpose, but
I have seen people confuse them with list displays.

xx | Preface
Using Code Examples

Every script and most code snippets that appear in the book are
available in the flu

entpython/example-code repository on Github.

Supplemental material (code examples, exercises, etc.) is available


for download at

https://github.com/oreillymedia/title_title.

This book is here to help you get your job done. In general, if
example code is offered

with this book, you may use it in your programs and documentation.
You do not need

to contact us for permission unless you’re reproducing a significant


portion of the code.

For example, writing a program that uses several chunks of code


from this book does

not require permission. Selling or distributing a CD-ROM of examples


from O’Reilly
books does require permission. Answering a question by citing this
book and quoting

example code does not require permission. Incorporating a significant


amount of ex‐

ample code from this book into your product’s documentation does
require permission.

We appreciate, but do not require, attribution. An attribution usually


includes the title,

author, publisher, and ISBN. For example: “Book Title by Some Author
(O’Reilly).

Copyright 2012 Some Copyright Holder, 978-0-596-xxxx-x.”

If you feel your use of code examples falls outside fair use or the
permission given above,

feel free to contact us at [email protected].

Safari® Books Online

Safari Books Online is an on-demand digital library that delivers


expert content in both book and video form from the world’s leading
authors in technology and business.

Technology professionals, software developers, web designers, and


business and crea‐

tive professionals use Safari Books Online as their primary resource


for research, prob‐

lem solving, learning, and certification training.

Safari Books Online offers a range of product mixes and pricing


programs for organi‐
zations, government agencies, and individuals. Subscribers have
access to thousands of books, training videos, and prepublication
manuscripts in one fully searchable database

from publishers like O’Reilly Media, Prentice Hall Professional,


Addison-Wesley Pro‐

fessional, Microsoft Press, Sams, Que, Peachpit Press, Focal Press,


Cisco Press, John

Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt,


Adobe Press, FT

Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett,


Course Technol‐

ogy, and dozens more. For more information about Safari Books
Online, please visit us

online.

Preface | xxi

How to Contact Us

Please address comments and questions concerning this book to the


publisher:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

800-998-9938 (in the United States or Canada)

707-829-0515 (international or local)


707-829-0104 (fax)

We have a web page for this book, where we list errata, examples,
and any additional

information. You can access this page at


http://www.oreilly.com/catalog/<catalog page> .

To comment or ask technical questions about this book, send email to


bookques

[email protected].

For more information about our books, courses, conferences, and


news, see our website

at http://www.oreilly.com.

Find us on Facebook: http://facebook.com/oreilly

Follow us on Twitter: http://twitter.com/oreillymedia

Watch us on YouTube: http://www.youtube.com/oreillymedia

Acknowledgments

The Bauhaus chess set by Josef Hartwig is an example of excellent


design: beautiful,

simple and clear. Guido van Rossum, son of an architect and brother
of a master font

designer, created a masterpiece of language design. I love teaching


Python because it is

beautiful, simple and clear.


Alex Martelli and Anna Ravenscroft were the first people to see the
outline of this book

and encouraged me to submit it to O’Reilly for publication. Their


books taught me

idiomatic Python and are models of clarity, accuracy and depth in


technical writing.

Alex’s 5000+ answers in Stack Overflow are a fountain of insights


about the language and its proper use.

Martelli and Ravescroft were also technical reviewers of this book,


along with Lennart

Regebro and Leonardo Rochael. Everyone in this outstanding


technical review team

has at least 15 years Python experience, with many contributions to


high-impact Python

projects in close contact with other developers in the community.


Together they sent

me hundreds of corrections, suggestions, questions and opinions,


adding tremendous

value to the book. Victor Stinner kindly reviewed Chapter 18, bringing
his expertise as xxii | Preface

an asyncio maintainer to the technical review team. It was a great


privilege and a pleasure to collaborate with them over these last
several months.

Editor Meghan Blanchette was an outstanding mentor, helping me


improve the orga‐
Another random document with
no related content on Scribd:
Mandavam-se proprios, e dispunham-se postas quando assim era
preciso. Nos caminhos de maior transito, em intervallos de 3 a 4
leguas, as estalagens tinham cavallos para muda, que alugavam.
Em 1520 el-rei D. Manuel criou o officio de correio-mór; foi Luiz
Homem, ao que dizem, o primeiro a exercer o cargo.
Em tempo de D. João III appareceu a primeira lei ou regimento
postal.
O segundo correio-mór chamava-se Luiz Affonso; seu genro
Francisco Coelho, foi o terceiro.
O cargo conservou-se na familia até 1606 em que falleceu Manuel
Gouvêa, o quarto no cargo.
Então Filippe II mandou vender o officio; que foi comprado por
70:000 cruzados, por Luiz Gomes da Matta, em 19 de julho de 1606.
O correio-mór tinha a seu serviço estafetes, mestres e creados de
posta, e varios assistentes. O serviço do correio foi sempre
augmentando, sem alteração fundamental do regime até 1852,
embora este ramo pertencesse ao Estado desde 1797. Neste anno,
em alvará de 16 de março, D. Rodrigo de Sousa Coutinho foi
encarregado de tratar com o Correio-Mór a cedencia do officio.
Manuel José da Maternidade Matta de Sousa Coutinho, o ultimo
correio-mór, recebeu em indemnisação pela cedencia do officio o
titulo de conde em tres vidas, a renda annual de 40:000 cruzados,
pensões vitalicias a diversas pessoas, cuja somma andava por
400:000 cruzados, e um ou dois postos no exercito.
Foi este o primeiro conde de Penafiel.
O segundo conde e primeiro marquez de Penafiel foi Antonio José
da Serra Gomes pelo seu casamento, em 1861, com a segunda
condessa desse titulo.
Pelas quantias indicadas se vê o augmento de importancia do
correio entre 1606 e 1797, ainda que nessa época pequeno
progresso tivera a viação publica.
Estuques
O uso do estuque é muito antigo; ha exemplos no velho Egypto,
na remota Assyria; os romanos o empregaram vulgarmente; em
Pompeia ha tectos, frisos, cornijas de gesso. Bysantinos e arabes
usaram do estuque, principalmente os arabes de Hespanha; os
estuques pintados da Alhambra são admirados no engenho da
decoração geometrica, no effeito da combinação de tons. Durante
largo tempo esqueceu o estuque, para reviver no meiado do seculo
XVI. Mas então renasceu e logo se desenvolveu em processo e
applicação; fizeram-se frescos sobre estuque de gesso,
modificaram-se as pastas, formaram-se grandes composições em
alto relevo.
Em Portugal ha noticia de estuques no seculo XVII, de pouca
importancia.
Poucos annos antes do grande terremoto de 1755 appareceu em
Lisboa um artista italiano de grandes aptidões, João Grossi, que
iniciou grandes trabalhos neste genero. Outro estucador,
primeiramente simples ajudante de Grossi, Gommassa, se tornou
notavel.
O marquez de Pombal empregou-os nas suas propriedades. O
terremoto tornou necessarios trabalhos rapidos e os estucadores
prosperaram; e vieram mais estucadores italianos, Chantoforo,
Agostinho de Quadri, que introduziram novos processos. Nas
Janellas Verdes, no palacio pombalino da rua Formosa, na egreja
dos Paulistas, etc., ha trabalhos d’estes italianos.
O marquez de Pombal chegou mesmo a fundar uma escola de
estucadores, de que foi mestre o Grossi (1766).
Trabalhou-se immenso em estuque, bem e mal, com arte ou sem
ella; João Paulo da Silva trabalhou no palacio na quinta das
Laranjeiras (por 1798), assim como Felix Salla, outro italiano
discipulo do celebre milanez Albertoli, que fez reviver a grande
ornamentação dos gregos e do imperador Augusto.
É certo que por este tempo estucadores portuguezes foram
trabalhar a Hespanha, tanto se tinha aqui progredido neste ramo.
Por 1805 entrou em Lisboa um estucador suisso de grande
habilidade, Vicente Tacquet que trabalhou com Francisco Espaventa
e outros.
Vieram os desastres da guerra, e alguns dos melhores artistas
refugiaram-se no norte do paiz, no Porto, e em Vianna do Castello,
Caminha, Affife que nos tempos modernos, nos ultimos 40 annos,
tem produzido bons artistas estucadores.
De Rodrigues Pitta são os tectos do palacio do marquez de
Vianna (1846) ao Rato, hoje propriedade do sr. Marquez da Praia.
Em 1855 e 1856 ornamentou o salão de baile do palacio da
Junqueira (actual palacio Burnay) e dois salões do palacio Costa
Lobo, no campo de Sant’Anna.
Deixou trabalhos de grande folego nos palacios de José Maria
Eugenio d’Almeida, a S. Sebastião da Pedreira, Gandarinha que tem
magnificas escaiolas na galeria, e no do Marquez de Penafiel.
A esplendida sala do conselho de Ministros, no Ministerio do
Reino, tem o tecto muito trabalhado, não de grande effeito.
Cinatti introduziu em Lisboa um artista, seu parente, Joanni,
notavel imitador de marmores, e bom artista em estuque lucido.
Nos ultimos vinte annos a mania pelo estuque, especialmente
pelas imitações de marmores, tem sido, a meu vêr, exaggerada.
E, o que é grave, na maioria esses trabalhos são mal dirigidos e
executados. Tem sido um desastre.
Ha estuques carregados de relevos que em tres ou quatro annos
estão fendidos e estragados.
Imitações de marmores, quasi tão caras como os modelos,
estaladas em poucos mezes. Mas a mania pelos estuques não é só
na capital; ao norte do paiz ainda foi, e é, mais intensa.
No Porto ha estuques antigos, dos melhores, no palacio dos
Carrancas, e modernos na Bolsa.
No Minho citam-se como notaveis os do palacio da Brejoeira, obra
dos Alves, de Fafe, por 1850.
Em Evora temos os mais recentes no theatro Garcia de Resende,
fino trabalho do Meira.
Será rara a egreja da Provincia, onde tenha havido reparos nos
ultimos annos, que não possua amostras de estuque moderno, de
facil execução e de mau effeito passado o lustro dos primeiros
mezes.
Nas salas do Correio-Mór ha tectos estucados a baixo relevo
muito distinctos e paredes ornamentadas a esgrafito de algum
effeito.
Volkmar Machado deixou-nos algumas noticias sobre
estucadores, que Liberato Telles utilisou no seu trabalho publicado
no Boletim da Associação dos Conductores de Obras Publicas. Vol.
IV. 1900.

Egreja de S. Lourenço de Carnide


O logar de Carnide, que faz parte agora da capital, é muito antigo;
existia já povoado e cultivado no meiado do seculo XIII.
O mosteiro de S. Vicente possuia aqui uma vinha e uma herdade,
como se lê nas inquirições do reinado de D. Affonso III. Por esse
documento, importante para a historia de Lisboa e seus termos, se
vê que em tão remota época já nestes logares de Carnide,
Charneca, Queluz, Falagueira, Odivellas, Palma e Telheiras havia
culturas, vinhas e povoados que contribuiam para o rei, para as
ordens militares, e para os grandes mosteiros.
Em 1342, o bispo de Lisboa, D. João, mandou edificar a egreja á
honra de S. Lourenço, por Pedro Sanches, chantre da sua sé, e a
deu a seu capellão João Dor. Era já egreja parochial no seculo XIV.
Em meio de amplo terreiro, murado, orlado de oliveiras, com larga
vista de campos e collinas ergue-se a egreja com o seu campanario,
em linhas de singela construcção. A orientação e disposição da
egreja é antiga, todavia pouco se vê do seu estado primitivo.
Está bem reparada, de ha poucos annos.
É um templo alegre, com as suas obras de talha dourada, as
paredes forradas com azulejos, de azul sobre branco, em grandes
quadros, allusivos á vida de S. Lourenço.
Tem cinco altares, o maior, o da Senhora do Rosario, do
Crucificado, de S. Miguel, e o de Jesus-Maria-José.
No altar-mór ha um quadro bom, o lavapedes, mal restaurado,
infelizmente; algumas campas com lettreiros no chão da capella-
mór; duas pias d’agua benta que são dois capiteis do seculo XIV,
escavados; na sacristia um arcaz de boa madeira, com metaes bem
cinzelados.
O terreiro ao redor da egreja era d’antes o cemiterio; campas e
ossadas foram removidas para o cemiterio dos Arneiros (Bemfica).
Ficou apenas uma grande pedra, com inscripção latina, que era o
tumulo de José João de Pinna de Soveral e Barbuda, fallecido em
1710.
Para o novo cemiterio de Bemfica foi removida a campa de D.
Anna Maria Guido, marqueza de Ravara, fallecida em 1752.
No alto de um cunhal, do lado do sul, está uma pedra com lettreiro
em caracteres gothicos (seculo XV, talvez) que diz:—Esta sepultura
he de Luis d’Abreu e de todos seus herdeiros.
Na capella-mór ha bastantes campas.
—Esta sepultura é de Joam da Costa de Mendonça e de quem
nela se quizer enterrar.
—Sepultura de Francisco Jorze e de sua molher e de seus
herdeiros... de 1569.
—Sepultura de George Pires e de sua molher e herdeiros. 1616.
—Sepultura de Jozeph da Costa e de sua mulher Catharina da
Costa a coal faleceo a 28 doutubro de 1712 e pera todos os seus
herdeiros.
—Sepultura de Guilherme Street Arriaga Brum da Silveira e
Cunha e familia. 28 de outubro de 1826. P. N. A. M.
—Esta sepultura mandou fazer João Correa pera se enterrar nella
e seus herdeiros.
—Sepultura de Antonio de Almeida e seus herdeiros faleceu a 14
de mayo de 1601 anos.
—Sepultura de Luiz Ramalho Pre... e de sua mulher Francisca de
Almada Tiba e de seus herdeiros faleceu a X d. de junho de 1637.
—Sepultura de Bastião criado de S. M. e de seu herdeiro. Faleceo
a 5 doutubro de 1796.
—Sepultura do P.ᵉ H.ᵐᵒ Machado cura que foi nesta igreja muitos
annos e de seu herdeiro.
—Sepultura perpetua de Simão Moreira e sua molher Domingas
Francisca e de seus herdeiros a qual lhe mandou pôr seu filho o P.ᵒ
Luiz Moreira. 1678.
—Sepultura de Lianor Jorze molher que foi de Luiz Glz d’Oliveira
provedor dos contos do reino faleceo a 21 doutubro de 1567, e de
seus herdeiros.
Transcrevi estes lettreiros porque são ineditos.
Na frontaria da egreja está uma inscripção referente á fundação; e
uma pedra com escudo d’armas que não sei explicar; não me
parece portuguez, nem hespanhol esse curioso brazão em que se
vê uma perna com bota, por baixo de uma estrella.
É bem interessante a modesta egreja, agora parochia da capital.

Luz
Da egreja de Nossa Senhora da Luz resta-nos o cruzeiro, e a
capella-mór; o corpo da egreja abateu por occasião do terremoto de
1755. É da fundação da infanta D. Maria, senhora opulenta e de alta
cultura d’espirito. Nesta egreja ha obras d’arte notaveis em
esculptura de madeira e pedra, em architectura, e em pintura. A
capella-mór tem 12 x 8 metros; o cruzeiro 21 x 10.
A capella-mór é ampla, alta, coberta de abobada revestida, assim
como as paredes, de marmores diversos formando quadrellas; é o
conhecido estylo classico dominante no findar do seculo XVI. Nichos
com estatuas animam as grandes paredes. Na parede que olha ao
sul estão rasgadas janellas que dão bastante claridade.
O altar-mór está elevado, sobre o pavimento da capella; quatro
degraus se sobem para lá chegar.
Além do altar-mór abre-se um grande arco que abriga o sacrario,
soberba obra d’arte muito elegante, em madeira entalhada e
dourada; atraz fica o vasto côro, agora sacristia, no mesmo nivel da
egreja. Proximo do grande altar, no chão, ha uma abertura circular
que diz para a fonte de agua milagrosa.
A meio da capella-mór o singelo tumulo da fundadora.
Na capella-mór ha duas capellas lateraes; outras duas no
cruzeiro.
Empregaram na construcção marmores branco e vermelho,
servindo-se da pedra d’Arrabida na ornamentação; nos frisos e
molduras sobresahem quadrados, losangos, ellipses feitos n’essa
pedra, bem trabalhada e polida. A pedra vermelha fórma o fundo, a
branca a parte saliente e ornamental.
Nos grandes nichos da capella-mór estão dezesete estatuas em
marmore: Nossa Senhora com o Menino de Jesus, S. Thomé, S.
André, S. João, S. Lucas, S. Matheus, S. Marcos, S. Simão, S.
Mathias; estas á direita, olhando para o altar-mór; á esquerda, S.
Filippe, S. Thiago Maior, S. Pedro, S. Judas Thadeu, S. Thiago
Menor e S. Bartholomeu. As estatuas da Virgem e dos Evangelistas
são maiores.
Estas estatuas são em marmore branco d’Estremoz, lindo
marmore; o trabalho é muito pegado, os artistas não se atreveram a
desligar, a destacar braços ou mãos.
No exterior do edificio, lado sul, ha outra estatua de Nossa
Senhora com o Menino e, ainda uma terceira na frontaria do
Collegio Militar; todas da mesma época e do mesmo estylo
acanhado. São todavia de bom trabalho, e representam
excellentemente o estado da estatuaria em Portugal naquelle tempo.
No altar-mór admiramos alguns baixos relevos em fino jaspe, em
seis pequenas pilastras; são figuras symbolicas da Fé, Justiça,
Fortaleza, etc.
Sobre a figura da Fortaleza ha um medalhão com Hercules, o leão
e o centauro finamente executado.
Uma das figuras é a Astronomia, outra a Medicina. Nas pilastras
que formam as esquinas do altar, as faces lateraes mostram fructas
e flores, escudos e peças d’armadura. Estes bellos baixos relevos
são de pura renascença, d’um estylo muito anterior ao frio
classicismo da capella-mór.
Alguns dos symbolos destoam da ideia christã, parecem
deslocados na ornamentação d’um altar-mór. É possivel que sejam
peças destinadas a outra obra d’arte, que foram aqui aproveitadas.
Nas duas capellas lateraes do cruzeiro de Santa Maria de Belem
(Jeronymos) ha uns lindos baixos relevos nos altares, pouco vistos,
que passam mesmo despercebidos porque teem luz escassa, que,
me parece, se relacionam com estes da Luz na qualidade da pedra,
e no estylo do trabalho. E no portico do poente, nos Jeronymos,
superiormente, ha duas pilastras que dizem com estas da Luz[1].

[1] Devemos lembrar que Jeronymo de Ruão, architecto da


Luz, tambem o foi da capella-mór dos Jeronymos
Na alta parede da frente da capella-mór ha oito quadros em
disposição symetrica; o maior occupa o centro, é Nossa Senhora da
Luz com o Menino, que apparecem ao pobre Pedro Martins; o
milagre que deu origem á fundação da ermida primitiva.
Este quadro está assignado: Franciscus Venegas, Regius pictor
faciebat.
Sobre este quadro está outro painel de moldura circular, que
representa a Coroação da Virgem; está tambem assignado: F.
Venegas. f. Como estes dois quadros estão bastante altos as
assignaturas não se descobrem á primeira vista, mas é facil a leitura
com um binoculo regular.
Á esquerda da Coroação está a Adoração dos Reis, á direita a
Apresentação no Templo, em molduras ellipticas; não lhes descubro
assignatura. Aos lados do grande quadro do milagre de Pedro
Martins, está a Visitação á esquerda, e á direita a Adoração dos
pastores; não lhes vejo assignatura; por baixo á esquerda Nossa
Senhora e S. Joaquim, á direita a Annunciação, este assignado: F.
Venegas f.
Os paineis não assignados podem ser do mesmo artista Venegas;
são pinturas em madeira, bem desenhadas e pintadas, em boa
conservação. Á primeira vista estas pinturas destoam, divergem
entre si; a meu vêr porque o pintor, que era excellente executante,
não tratou de inventar, contentando-se em copiar, ou quasi, os bons
quadros que conhecia.
Assim este quadro recorda Raphael, outro o Sarto, aquelle o
Parmesão; na Coroação da Virgem, singelo grupo em fundo
dourado, parece vêr-se a reproducção de quadro muito antigo de
um primitivo; na grande composição central lembra logo a
Transfiguração de Raphael; na Annunciação, que tem grande vigor
de colorido, e luz intensa de grande effeito, recorda o Mazuoli. Isto
é, este Venegas, excellente pintor, está completamente dominado
pela escola italiana.
Na capella da esquerda está o quadro da Circumcisão. O fundo é
formado por apparatoso edificio do renascimento. A figura da
Virgem é admiravel; á esquerda, a Caridade, mulher com duas
creanças, de bom effeito; á direita, no fundo escuro, a Humildade.
No primeiro plano vê-se um tapete persa e um cãosinho felpudo, de
luxo, pintado com muito cuidado.
Na capella á direita a Sacra Familia, Anjos coroando: fundos
claros, edificio do renascimento em ruina. Detalhes minuciosos.
O trabalho d’esculptura em madeira dourada que reveste a
grande parede da capella-mór faz bom effeito; é desegual, talvez em
parte material aproveitado para encher o vão. Mas o sacrario é uma
peça de grande elegancia; renascença classica de cuidadosa
execução.
Na capella esquerda do cruzeiro está um quadro notabilissimo. S.
Bento dá a regra aos seus monges. No primeiro plano á esquerda
el-rei D. Manuel, á direita a infanta D. Maria. Um fidalgo e diversos
monges formam grupo atraz da figura do rei, uma dama e muitas
freiras estão depois da infanta. Todas as figuras estendem o braço
direito, a palma da mão para cima como signal de acceitação da
regra. O pintor para evitar monotonia variou muito as posições dos
dedos; foi um verdadeiro esforço, um trabalho habilidoso e paciente
o desenho de tantas mãos; a mão fina e lisa das damas novas, a
nodosa e enrugada das velhas, a robusta e a gorducha dos fortes
monges. D. Manuel tem o collar de Christo. A infanta veste com
fausto; vestido de tissu lavrado, apertado na frente com laços de
fitas com agulhetas; joias com pedras preciosas, gorgeira de fina
renda, gola muito alta, collar com fita pendente de ouro e pedras. O
lindo rosto juvenil da dama de côrte, vestida mais modestamente,
pintado n’um tom menos brilhante, succede muito bem á magestosa
grande dama, e prepara para o aspecto ascetico do grupo de freiras.
Tanto estas como os frades teem phisionomias estudadas; são
retratos. Por isto este painel tem o duplo valor de obra d’arte, e de
documento historico, dando-nos ainda preciosos elementos de
indumentaria. Ha outros retratos da infanta; e o busto de prata que
se conserva em Santa Engracia (antiga egreja dos Barbadinhos)
harmonisa com este em aspecto e vestuario.
As grades da capella-mór e das outras capellas são em pau santo
com torcidos.
No cruzeiro á direita fica outro altar. É a capella do Senhor dos
Afflictos; é a imagem de Jesus Crucificado, esculptura em madeira
de boa execução, corpo robusto com anatomia estudada. Sob a
imagem, n’um friso, ha duas taboas pintadas que merecem
attenção. Em uma Santo Antonio e S. João Baptista; na outra as
santas Agueda e Luzia, com os seus emblemas. São pinturas talvez
do começo do seculo XVI alli applicadas.
No cruzeiro, á direita, uma porta singela dá para uma pequenina
capella, agora sem culto; construcção do começo do seculo XVII.
Tem rodapé de azulejos, altar e chão de boa pedra. Está aqui um
tumulo com escudo de armas sem lettreiro; outro com brazão e a
seguinte legenda:
—Aqui está sepultado o religiosiss.ᵒ varão da ordem de Chr.ᵒ D. F.
Martinho de Ulhoa bispo que foi de S. Thomé, Congo e Angola
juntamente que mandou fazer esta capella em a qual se lhe diz
missa quotidiana falleceo a 8 d’agosto de 1606.—
Guarda-se na sacristia (antigo côro) um grande retabulo que
servia de tapar o vão do arco da capella-mór. Representa o milagre
de Nossa Senhora a Pedro Martins. É fraca pintura. Está assignado
e datado: Anno de 1714. Henrique Ferreira fez.
Sobre o altar da sacristia está a imagem de Nossa Senhora dos
Remedios.
É esculpida em madeira, e por nesta ter dado o caruncho a
vestiram de seda para occultar as lesões. Merece toda a attenção. É
pintada e dourada; luxuoso vestido rodado de mangas perdidas, fita
de joias em relevo com imitação de pedras finas. No vestido o artista
imitou rico tissu floreado.
O vestuario d’esta imagem recorda o do retrato da infanta. Deve
ser esculptura do fim do seculo XVI.
Da mesma época deve ser um grande frontal com o brazão da
infanta bordado no centro e aos lados; tem fachas de velludo
vermelho com bordado alto a ouro e prata, sendo os vãos ou
entrefachas de seda branca.

Junto do altar-mór a abertura do poço ou fonte da agua milagrosa,


um simples bocal raso com tampa de madeira.
A fonte é bem curiosa. A entrada deita para um quintal contiguo.
Descemos a escada e na parede vemos alguns azulejos antigos,
mouriscos, de fino esmalte e relevos. Um portico em estylo
manuelino dá para o espaço onde nasce a agua; uma abobada
forrada de azulejos brancos com estrellas azues; outros revestem os
rodapés e paredes, em pequenos quadros formados de quatro
azulejos, de diversos typos, alguns raros. O portico tem columnas
torcidas e no intercolumnio uma facha com romans.

Os pintores da Luz
Filippe I (II de Hespanha) n’uma carta de 14 de março de 1583
chama a Francisco Venegas, meu pintor.
(Sousa Viterbo, Noticia de alguns pintores, Lisboa, 1903,
pag. 153).
D. Sebastião, em alvará de 6 de maio de 1577, diz: Diogo Teixeira
hum dos melhores pintores de imaginarya dolio que ha nestes
reynos.
(Ibidem, pag. 142).
Na collecção de desenhos expostos no Museu das Janellas
Verdes, os n.ᵒˢ 307 e 308 parecem-me representar as duas figuras
que estão em baixo relevo no altar-mór da Luz.
O desenho n.ᵒ 346 (Museu das Janellas Verdes) é de Venegas;
uma rubrica indica que é o projecto de um quadro para S. Vicente
de Fóra, e que se executou uma réplica, menor, para S. Domingos
de Setubal.
A collecção de desenhos do Museu das Janellas Verdes é muito
importante, e vista com attenção dá elementos unicos para a historia
da arte em Portugal. Ha mais collecções de desenhos em Portugal
em estabelecimentos publicos, e na posse de particulares, que insta
tornar conhecidas.
Creio que o n.ᵒ 268 é o esquisso do quadro da capella lateral, a
Circumcisão; architectura á romana; o sacerdote no faldistorio, etc.,
nem falta o cãosinho felpudo.

Jeronymo de Ruão foi architecto da infanta D. Maria; entre outras


obras fez a capella da Luz e a capella-mór dos Jeronymos.
Nos dois capitulos O lindo sitio de Carnide e Noticias de Carnide
dei outras noticias e publiquei lettreiros d’esta egreja da Luz, que
julgo escusado repetir agora.
Para a historia da inclita infanta D. Maria é fundamental a—Vida
de la serenissima infanta dona Maria, por fr. Miguel Pacheco
(Lisboa, 1675).—Modernamente appareceu á luz um trabalho a
respeito da infanta e de suas damas pela Sr.ᵃ D. Carolina Michaëlis
de Vasconcellos. Escusado dizer, é bem conhecida a alta
intelligencia e a intensa investigação da auctora, que é escripto fóra
da bitola vulgar. Nelle se dá noticia dos differentes retratos da
infanta D. Maria.
Transcrevo a curta biographia que vem nos Elogios de varões e
donas por ser menos conhecida agora, pois esta obra tornou-se
pouco vulgar.

Biographia da infanta D. Maria


A Infanta D. Maria tão illustre pelo dote da formosura, como pelo
engenho, erudição, graça, e todo o genero de heroicas virtudes, que
a constituiram uma das mais recommendaveis princezas do seu
seculo, foi filha d’El-Rei D. Manoel, e da Rainha D. Leonor de
Austria sua 3.ᵃ mulher. Seu nascimento foi na cidade de Lisboa, em
sabbado 8 de junho de 1521 nos paços da Ribeira; e a 17 do
mesmo mez foi baptizada pelo Arcebispo de Lisboa, D. Martinho Vaz
da Costa, escolhendo El-Rei seu pai para padrinho em nome de
Carlos III, Duque de Saboia, o Barão de S. Germano, Senhor de
Balaison, enviado então por Embaixador a este Reino para solicitar
o cazamento da Infanta D. Brites com o dito Duque; e madrinhas a
mesma Infanta D. Brites e D. Isabel suas meias irmãs. Com a morte
d’El-Rei seu pai no mesmo anno de 1521, e por se auzentar para
Castella a Rainha sua mãi deixando-a ainda no berço, foi entregue
para ser educada em idade competente á direcção da Rainha D.
Catharina sua tia, tanto que chegou a este Reino, de cuja escola
saiu eminente. Como era dotada de estranha viveza, memoria, e
grande juizo aprendeu com facilidade as linguas especialmente a
Grega, e a Latina que soube com perfeição, e escreveu com tanta
propriedade como se lhe fôra natural e materna. Teve por mestres a
insigne Dama Toledana Luiza Segéa exquizitamente douta em
muitas linguas, e raro prodigio de sciencia, que mereceu ser
celebrada dos maiores letrados d’aquella idade; e a Fr. João Soares
de Urró da Ordem dos Eremitas de Santo Agostinho, depois Bispo
de Coimbra, que tambem o foi dos Principes D. Filippe, e D. João
seus sobrinhos.
Ao contar dezaseis annos El-Rei D. João III seu irmão lhe deu
caza propria, e separada do paço Real, composta das principaes
pessoas do Reino: a qual com riquissimo dote, que seu pai lhe
deixou, foi de tão grande renda e estado, que para ser igual á das
maiores Rainhas da Europa não lhe faltou mais, que haver o nome
de uma d’ellas. Foi Senhora de Vizeu, e de Torres Vedras de juro, e
teve por El-Rei D. João III seu irmão muitas mercês, e privilegios, e
consta por alguns Documentos que se guardam no Real Archivo,
como são: uma carta em data de 26 de janeiro de 1545, em que se
lhe concedem de padrão de juro e herdade cinco contos de réis, em
virtude do contracto feito com o mesmo Rei D. João III que se acha
inserto; e duas cartas expedidas á mesma Senhora Infante de
privilegios, e jurisdição de suas terras, e sobre as fintas, e
provimentos dos officios d’ellas em data de 2 de novembro do
mesmo anno: o primeiro no Livro da Chancellaria do dito Rei a fol.
25, e os segundos no Livro 43 fol. 9, vers. e 14 verso. Creou n’este
paço particular uma verdadeira Universidade de mulheres illustres
em todo o genero de Sciencias e Artes, de que foi especial
protectora; pois não só se encontrava quem se désse á lição dos
Livros, e tocasse déstramente differentes instrumentos, mas quem
com o pincel, e com a agulha procurasse nos primores da Pintura, e
lavôr virtuosa emulação e seguisse os outros louvaveis exercicios:
aos quaes ajuntava com tal reverencia, e edificação a pratica dos
actos de piedade em todo o genero de virtudes, pela direcção de Fr.
Francisco Foreiro, lustre da Ordem Dominicana, que parecia menos
Paço Real, que Mosteiro reformado, que podia ser a Religiosas
espelho, e doutrina de bem viver. Pela fama de tão Reaes
qualidades foi pretendida para Espoza dos maiores Principes da
Europa, como foram: o Delfim de França, filho de Francisco i; o
Duque de Orleans, irmão do mesmo Delfim, a quem o Imperador
Carlos v promettera a investidura do Ducado de Milão, ou do
Condado de Flandres; e não se effeituando nenhum d’estes
cazamentos, por morrerem ante tempo ambos estes Principes, El-
Rei D. Fernando de Ungria, Rei dos Romanos, e depois Imperador
enviou Embaixador a Portugal pedindo-a por mulher de Maximiliano
seu filho; e ultimamente Filippe ii de Hespanha, logo que enviuvou
da Rainha D. Maria de Inglaterra. Permaneceu todavia até á morte
no estado de Donzella, que havia consagrado a Deos com generoza
rezolução, preferindo mais o amor da quietação de seu espirito, que
a cobiça de reinar. No anno de 1558, sendo ja fallecido El-Rei D.
João III, por comprazer aos dezejos da Rainha D. Leonor sua mãi
que procurava anciozamente vê-la, se foi por Elvas a Badajoz com
luzido acompanhamento; e demorando-se ahi com ella por espaço
de vinte dias, e com a Rainha D. Maria de Ungria e Bohemia sua tia,
que a receberam com muitas festas de prazer, se tornou para o
Reino. Determinada a não sair de Portugal, e a não admittir
propostas de despozorios continuou em religiozos exercicios
praticando obras de muito louvor, como foram: a edificação do
Convento magnifico de N. Senhora da Luz da Ordem de Christo,
que dotou riquissimamente, com a grande obra do Hospital que lhe
ficava fronteiro; o Mosteiro de Santa Helena do Calvario em Evora; o
Convento de N. Senhora dos Anjos (mais conhecido hoje pelo
convento do Barro), de Capuchos Arrabidos, junto da Villa de Torres
Vedras, na qual teve ella seu palacio; e o Mosteiro de S. Bento na
Villa de Santarem; e deixou em seu Testamento, com que se
edificasse Mosteiro para as Commendadeiras de S. Bento de Aviz,
que se fez em Lisboa com a invocação, como ella ordenára, de N.
Senhora da Encarnação. Fundou mais a Igreja Parochial de Santa
Engracia de Lisboa, alem de outras muitas obras de piedade em
outras Igrejas, como no Convento da Graça da Ordem de Santo
Agostinho, em que assistia muitas vezes com sua prezença e
esmollas, quando vivia no Palacio do Castello, a Imagem da
Senhora, cujo corpo mandou cobrir de prata primorosamente
lavrada, e lhe mandou fazer Capella; e no Real Mosteiro de S.
Bento, que então se fabricava, mandou fazer a Imagem grande
deste Santo, que se vê no altar mór, e adornar sua Capella, e a de
outros altares; e por via do Embaixador de Portugal na Côrte de
Roma obteve uma Reliquia do mesmo Santo, que he uma parte da
que estava no Mosteiro de S. Paulo daquella Cidade, para
enobrecer este Mosteiro, e o de Santarem. Foi a Senhora D. Maria,
como universal herdeira da Rainha D. Leonor sua mãi, Senhora
Soberana de juro do Senescallado de Agenois em Gascunha, e dos
opulentos Dominios de Verdum, e Rieux na Provincia de Languedoc;
e alem de muitas baixellas de ouro, prata, joias de grande valor, de
cem mil escudos que lhe pagavam os Reis de França, e Castella.
Sua morte foi no anno de 1577 a 10 de outubro em idade de 56
annos, nos seus paços da Cidade de Lisboa extramuros junto do
Mosteiro de Santos, deixando de si unico exemplo a todas as altas
Princezas de virtude e honestidade. Tinha disposto de sua ultima
vontade, como se podia esperar de sua muita sciencia, e
Christandade, por Testamento de 17 de Julho do mesmo anno de
1577, e Condicillo de 31 de Agosto que fez approvar a 8 de
Setembro, o que mais convinha a sua consciencia, determinando
muitas obras de piedade por todo o Reino com grandes soccorros
para pobres, viuvas, donzellas, orfãos, enfermos, e cativos com
tamanha profusão que não houve quazi genero de pessoa, que não
experimentasse a caridade, e mizericordia desta Princeza, sem
faltar em nada á familia de seus criados, e a todos a quem por
qualquer via era devedora de serviços passados, que a todos
satisfez larguissimamente: e emquanto a seu enterro foi a primeira
clauzula, que se acabasse sua vida, primeiro que estivesse
concluida a Capella de N. Senhora da Luz no Convento dos Padres
de Christo, que ella havia destinado, e mandára edificar para seu
jazigo, a depozitassem, emquanto se acabava, no Mosteiro da
Madre de Deos de Lisboa. Seu corpo foi depozitado no Capitulo do
dito Mosteiro da Madre de Deos, junto da Rainha D. Leonor, mulher
do Senhor Rei D. João II, e celebraram-se-lhe exequias com grande
pompa, como convinha á grandeza de sua pessoa, com assistencia
d’El-Rei D. Sebastião oito mezes antes de partir para Africa, do
Cardial D. Henrique, e de todos os grandes do Reino. Sendo
passados quazi vinte annos, por determinação de Filippe I foi
trasladada para a sobredita Capella de N. Senhora da Luz a 30 de
Junho de 1597. Jaz em o pavimento da Capella mór, em sepultura
pouco levantada no meio della, e sem nenhuma letra, ou diviza,
symbolizando-se por este signal de humildade a muita que esta
Princeza guardou em seu coração por toda a vida. No meio do
Cruzeiro ao lado do Evangelho se lê em pouca altura na parede
uma Inscripção, gravada de letras pretas romanas em uma pedra de
marmore branco de tres palmos de alto, e cinco de largo, a qual diz
assim:

—A Capella moor deste Mosteiro de N. Senhora da Luz e este


Cruzeiro são da sepultura da Serenissima Infanta Dona Maria que
Deos tem filha d’El-Rei Dom Manoel, e da Rainha Dona Lianor sua
mulher na qual Capella e Cruzeiro se não dará sepultura a pessoa
alguma de qualquer calidade que seja nem em tempo algum se fara
nhum Deposito nem nhum litereiro por assi estar asentado por Sua
Magestade e por contrato solene e celebrado que se fez co o Padre
Prior e Padres desta Casa confirmado pelo Padre Dom Prior e mais
Padres do seu Convento de Tomar cujo trelado esta na Torre do
Tombo e nesta Caza de Nossa Senhora. Faleceo a dez Doutubro de
1577.—
Esta biographia vem na obra—Retratos e elogios dos varões e
donas, que illustraram a nação portugueza. (Lisboa, 1817).

S. Sebastião do Paço do Lumiar


A ermida de S. Sebastião está isolada em alegre terreiro,
moldurado de bons predios, alguns antigos, no logar do Paço do
Lumiar.
Este logar é continuação do Lumiar propriamente dito, para o lado
da Luz e Bemfica.
Partindo do amplo largo da Luz segue-se uma estrada entre boas
quintas á Horta Nova; já proximo do Paço ha boas construcções
modernas á beira do caminho.
A ermida é muito simples; chama principalmente a attenção a
porta em estilo manuelino, elegante e bem conservada.
O exterior da pequenina egreja mostra que a primitiva obra do
começo do seculo XVI, soffreu grandes concertos depois. Na cruz
de azulejos que está no lado norte lê-se Anno 1628; a mesma data
se mostra no azulejo que fórra o interior; houve pois grande obra alli
n’esse tempo. As volutas d’alvenaria e os pinaculos lateraes do
frontispicio levam-nos a crer que mais tarde, no meado do seculo
XVIII, talvez depois do terremoto de 1755, houve novo e importante
concerto.
Temos aqui azulejos datados d’uma época interessante, do
periodo philippino, 1628. São de desenho geometrico na maioria,
emquadrando porém bons trabalhos em figura.
O corpo do templo é dividido da capella por um arco e na face
d’este arco estão as imagens em azulejo de S. Francisco, S. Pedro,
S. Antonio e S. Paulo; sobre a porta lateral está um famoso S.
Christovão empunhando respeitavel bordão, com o Menino sobre o
hombro. O artista empregava varias tintas, amarello, roxo, além dos
tons vulgares. Nas paredes da capella ha pequenos quadros
tambem em azulejo, azul sobre branco, representando phases da
vida de S. Sebastião, muito mais modernos que os do corpo do
templo.
É nos azulejos do arco divisorio, infra, que está em grandes
algarismos a data 1628, quasi encoberta pelos estrados de madeira.
No alizar d’este arco, ha flores pintadas com mimo; assim como
no pequeno côro se vêem caixotões com pinturas.
O ladrilho é antigo e bom; com azulejos brancos entre os tijolos
vermelhos. As portas são de excellente madeira, em almofadas de
boa execução.
O tecto da ermida soffreu alguma ruina, talvez pelo terremoto,
mas conserva ainda boas pinturas antigas, entre estuques mais
modernos.
Tem alguns lettreiros em sepulturas, uns bem legiveis, outros
gastos pela passagem dos devotos, o que mostra que em tempos
foi esta ermida frequentada; agora poucas vezes ha alli missas.
Transcreverei algumas inscripções.
—Aqui jaz sepultado o padre Joaquim Jorge faleceo a 9 de
novembro de 1783.
—S.ᵃ do P.ᵉ Antonio Pinheiro capelão que foi d’esta hirmida o qual
faleceu na era de 1705.
—S.ᵃ do capitão Estevão Soares de Alvergaria cavaleiro da ordem
de Christo faleceu a 11 de dezembro de 1644 e de sua molher Anna
de Masedo da Maia e de sua mãi Madalena da Maia....
Tem seu escudo gravado; a cruz fioreteada, com orla de escudos,
elmo e paquifes.
Outra campa é do—P.ᵉ Antonio Mamede bemfeitor desta irmida,
que morreu em 1 de abril de 1791.
Em outra muito gasta pareceu-me vêr o nome Rodrigo Diniz
Moreira.
Sobre a torre dos sinos ergue-se no eirado um campanario onde
está o sino das horas; porque tem seu relogio a pequena ermida,
com mostrador voltado para norte.
Ha na frontaria quatro argolas de ferro que serviam para segurar
um grande toldo na occasião das festas.
Quando fiz o esboceto do frontispicio estive a conversar com um
velhote que antigamente tratava do relogio, e armava o toldo, que
era quasi sempre uma vela de navio emprestada pelo arsenal de
marinha.
Embora humilde e acanhado tem o pequeno templo uma certa
importancia por ser anterior ao grande terremoto de 1755, e por nos
conservar além do gracioso portal manuelino, pinturas e azulejos do
seculo XVII, em bom estado de conservação.

Lumiar. Quinta do Sr. Duque de Palmella


Esta egreja de S. João Baptista do Lumiar é freguezia muito
antiga.
A disposição do templo mostra a sua remota fundação, grandiosa,
em tres naves; mas as reconstrucções e concertos deram-lhe um
aspecto moderno.
Consta que foi esta egreja fundada em 1267. Eram padroeiras as
freiras de Odivellas, por doação de D. Thereza Martins, viuva de D.
Affonso Sanches, filho bastardo d’el-rei D. Diniz.
Não pára aqui a historia. D. Affonso iii possuia aqui uma casa de
campo com sua quinta; esta propriedade pertenceu depois a D.
Diniz.
Em terreno da quinta foi edificada a egreja. A posse passou ao
bastardo de D. Diniz, o infante D. Affonso Sanches, e então se
chamou á casa de campo o Paço de Affonso Sanches.
Este entrou nas luctas d’aquella época atormentada, os bens
foram-lhe confiscados, e D. Affonso iv, o irmão, chamou-lhe o Paço
do Lumiar. Mais tarde a propriedade deixou de pertencer á corôa,
mas conservou sempre o nome de Paço do Lumiar; por alli se
ergueram casas, fez-se povoação, e ao fim d’ella uma ermida
dedicada a S. Sebastião.
O marquez de Angeja, D. Francisco de Noronha, em fins do
seculo XVIII edificou o actual palacio, hoje pertencente á Casa
Palmella.
O duque de Palmella, D. Pedro, homem de espirito cultissimo e
fino gosto, gostava immenso da sua quinta, augmentou-a com a que
pertencera á casa dos marquezes de Olhão, depois ao conde da

You might also like