Skip to content

Commit 6d36de7

Browse files
committed
cap01 urls replaced
1 parent e56208f commit 6d36de7

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

capitulos/cap01.adoc

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ Aprendi a dizer "dunder-getitem" com o autor e professor Steve Holden.
7272
(_sublinhado duplo antes e depois_).
7373
Por isso os métodos especiais são também conhecidos como _métodos dunder_.
7474
O capítulo
75-
https://docs.python.org/pt-br/3/reference/lexical_analysis.html#reserved-classes-of-identifiers["Análise Léxica"]
75+
https://fpy.li/2d["Análise Léxica"]
7676
de _A Referência da Linguagem Python_ adverte:
7777
"_Qualquer_ uso de nomes no formato `+__*__+` que não siga explicitamente o uso documentado,
7878
em qualquer contexto, está sujeito a quebra sem aviso prévio."
@@ -238,7 +238,7 @@ Card(rank='Q', suit='hearts')
238238
====
239239
Sempre((("doctest package", "ellipsis in")))((("ellipsis (…)")))((("… (ellipsis)"))) que possível,
240240
extraí as listagens do console de Python usadas neste livro com o
241-
https://docs.python.org/pt-br/3/library/doctest.html[`doctest`], para garantir a precisão.
241+
https://fpy.li/2e[`doctest`], para garantir a precisão.
242242
Quando a saída era longa demais, a parte omitida está marcada por reticências (`...`),
243243
como na última linha do trecho de código anterior.
244244
@@ -470,7 +470,7 @@ O `repr` também é usado:
470470

471471
* Pelo marcador posicional `%r` na formatação clássica com o operador `%`. Ex.: `'%r' % my_obj`
472472
* Pelo sinalizador de conversão `!r` na nova
473-
https://docs.python.org/pt-br/3.10/library/string.html#format-string-syntax[sintaxe de strings de formato]
473+
https://fpy.li/2f[sintaxe de strings de formato]
474474
usada nas((("f-string syntax", "string representation using special methods")))
475475
_f-strings_ e no método `str.format`. Ex: `f'{my_obj!r}'`
476476

@@ -530,7 +530,7 @@ porque qualquer objeto pode ser usado em um contexto booleano.
530530

531531
Observe que o método especial `+__bool__+` permite que seus objetos sigam as
532532
regras de teste do valor verdade definidas no
533-
https://docs.python.org/pt-br/3/library/stdtypes.html#truth[capítulo "Tipos Embutidos"]
533+
https://fpy.li/2g[capítulo "Tipos Embutidos"]
534534
da documentação da _Biblioteca Padrão de Python_.
535535

536536
[NOTE]
@@ -578,7 +578,7 @@ A ABC `Collection` (introduzida n Python 3.6) unifica as três interfaces essenc
578578
que toda coleção deveria implementar:
579579

580580
* `Iterable`, para((("Iterable interface")))((("interfaces", "Iterable interface"))) suportar `for`,
581-
https://docs.python.org/pt-br/3/tutorial/controlflow.html#unpacking-argument-lists[desempacotamento],
581+
https://fpy.li/2h[desempacotamento],
582582
e outras formas de iteração
583583
* `Sized` para((("Sized interface")))((("interfaces", "Sized interface"))) suportar a função embutida `len`
584584
* `Container` para((("Container interface")))((("interfaces", "Container interface"))) suportar o operador `in`
@@ -615,7 +615,7 @@ Python.((("", startref="PDMspecmeth01")))((("", startref="SMcollection01")))((("
615615
=== Visão geral dos métodos especiais
616616

617617
O((("Python Data Model", "special methods overview", id="PDMspmtov01")))((("special methods", "special method names (operators excluded)")))
618-
https://docs.python.org/pt-br/3/reference/datamodel.html[capítulo "Modelo de Dados"]
618+
https://fpy.li/2j[capítulo "Modelo de Dados"]
619619
de _A Referência da Linguagem Python_ lista mais de 80 nomes de métodos especiais.
620620
Mais da metade deles implementa operadores aritméticos, de comparação, ou bit-a-bit.
621621
Para ter uma visão geral do que está disponível, veja tabelas a seguir.
@@ -726,7 +726,7 @@ Também veremos o uso e a implementação da maioria dos outros métodos especia
726726
=== Para saber mais
727727

728728
O((("Python Data Model", "further reading on")))
729-
https://docs.python.org/pt-br/3/reference/datamodel.html[capítulo "Modelo de Dados"]
729+
https://fpy.li/2j[capítulo "Modelo de Dados"]
730730
em _A Referência da Linguagem Python_ é a fonte canônica para o assunto desse capítulo e de uma boa parte deste livro.
731731

732732
https://fpy.li/pynut3[Python in a Nutshell, 3rd ed.]
@@ -740,12 +740,12 @@ Veja seu perfil de usuário no
740740
https://fpy.li/1-9[Stack Overflow].
741741

742742
David Beazley tem dois livros tratando do modelo de dados em detalhes, no contexto de Python 3:
743-
https://dabeaz.com/per.html[Python Essential Reference]
743+
https://fpy.li/2k[Python Essential Reference]
744744
(EN), 4th ed. (Addison-Wesley), e
745745
https://fpy.li/pycook3[Python Cookbook, 3rd ed]
746746
(EN) (O'Reilly), colaborando com Brian K. Jones.
747747

748-
https://mitpress.mit.edu/books/art-metaobject-protocol[The Art of the Metaobject Protocol]
748+
https://fpy.li/2m[The Art of the Metaobject Protocol]
749749
(EN) (MIT Press) de Gregor Kiczales, Jim des Rivieres, e Daniel G. Bobrow
750750
explica o conceito de um protocolo de metaobjetos, do qual o Modelo de Dados de Python é um exemplo.
751751

@@ -765,7 +765,7 @@ https://fpy.li/1-10["modelo de objetos"]
765765
(EN) é: "as propriedades dos objetos em geral em uma linguagem de programação de computadores específica."
766766
É disso que o Modelo de Dados de Python trata.
767767
Neste livro, usarei "modelo de dados" porque esse é o título do
768-
https://docs.python.org/pt-br/3/reference/datamodel.html[capítulo de _A Referência da Linguagem Python_]
768+
https://fpy.li/2j[capítulo de _A Referência da Linguagem Python_]
769769
mais relevante para nossas discussões.
770770
771771
[role="soapbox-title"]
@@ -815,6 +815,6 @@ e alguns frameworks fazem exatamente isso.
815815
O exemplo mais importante é a
816816
https://fpy.li/1-12[_zope.interface_]
817817
(EN), parte do framework sobre a qual o sistema de gerenciamento de conteúdo
818-
https://plone.org.br/[Plone] é construído.
818+
https://fpy.li/2n[Plone] é construído.
819819
****
820820

links/replace_urls.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,18 @@ def main():
2020

2121
initial_adoc = adoc
2222

23+
replaced = set()
24+
2325
for path, url in pairs:
26+
if url in replaced:
27+
continue
2428
assert url in adoc, f'{url} not found in {adoc_name}'
2529
print(path, url)
2630
short_url = 'https://fpy.li' + path
2731
adoc = adoc.replace(url, short_url)
32+
replaced.add(url)
2833

29-
assert len(initial_adoc) < len(adoc), f'{adoc_name} not shortened'
34+
assert len(initial_adoc) > len(adoc), f'{adoc_name}: {len(initial_adoc)=} {len(adoc)=}'
3035

3136
with open(adoc_name, 'w') as fp:
3237
fp.write(adoc)

0 commit comments

Comments
 (0)