Skip to content

Commit 62a7136

Browse files
committed
marcação de xrefs em footnotes
1 parent abd8742 commit 62a7136

File tree

6 files changed

+21
-13
lines changed

6 files changed

+21
-13
lines changed

print/xrefs/xvol_xrefs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ def replace_xrefs_to_vols():
164164
else:
165165
raise ValueError(f'unexpected xref: {xref!r}')
166166
link = BASE_URL + '#' + xref
167-
print(f'<<{xref}>>', f'{text} [vol.{volume}, fpy.li{SHORT_URLS[link]}]')
167+
print(f'<<{xref}>>', f'{text} &#91;vol.{volume}, fpy.li{SHORT_URLS[link]}&#93;')
168168

169169

170170
if __name__ == '__main__':

vol1/cap02.adoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -662,7 +662,7 @@ Entretanto, `reversed(my_tuple)` funciona sem esse método; ele serve apenas par
662662
| `+s.__len__()+` | ● | ● | `+len(s)+`—número de itens
663663
| `+s.__mul__(n)+` | ● | ● | `+s * n+`—concatenação repetida
664664
| `+s.__imul__(n)+` | ● | | `+s *= n+`—concatenação repetida no mesmo lugar
665-
| `+s.__rmul__(n)+` | ● | ● | `+n * s+`—concatenação repetida inversafootnote:[Operadores invertidos são explicados no Capítulo 16 [vol.2, fpy.li/4r].]
665+
| `+s.__rmul__(n)+` | ● | ● | `+n * s+`—concatenação repetida inversafootnote:[Operadores invertidos são explicados no Capítulo 16 [vol.2, fpy.li/4r&#93;.]
666666
| `s.pop([p])` | ● | | Remove e devolve o último item ou o item na posição opcional `p`
667667
| `s.remove(e)` | ● | | Remove o primeiro elemento de valor igual a `e`
668668
| `s.reverse()` | ● | | Reverte, no lugar, a ordem dos itens
@@ -2035,7 +2035,7 @@ comparando as características de `list` e `array.array`.
20352035
| `+s.__len__()+` | ● | ● | `++len(s)++`—número de itens
20362036
| `+s.__mul__(n)+` | ● | ● | `++s * n++`—concatenação repetida
20372037
| `+s.__imul__(n)+` | ● | ● | `++s *= n++`—concatenação repetida no mesmo lugar
2038-
| `+s.__rmul__(n)+` | ● | ● | ++n * s++—concatenação repetida invertidafootnote:[Operadores invertidos são explicados no Capítulo 16 [vol.2, fpy.li/4r].]
2038+
| `+s.__rmul__(n)+` | ● | ● | ++n * s++—concatenação repetida invertida
20392039
| `s.pop([p])` | ● | ● | Remove e devolve o item na posição `p` (default: o último)
20402040
| `s.remove(e)` | ● | | Remove o primeiro elemento de valor igual a `e`
20412041
| `s.reverse()` | ● | ● | Reverte a ordem dos itens no mesmo lugar
@@ -2374,7 +2374,7 @@ então `deque` pode ser usado de forma segura como uma fila FIFO em aplicações
23742374
| `+s.__len__()+` | ● | ● | `++len(s)++`—número de itens
23752375
| `+s.__mul__(n)+` | ● | | `++s * n++`—concatenação repetida
23762376
| `+s.__imul__(n)+` | ● | | `++s *= n++`—concatenação repetida no mesmo lugar
2377-
| `+s.__rmul__(n)+` | ● | | `++n * s`++—concatenação repetida invertidafootnote:[Operadores invertidos são explicados no Capítulo 16 [vol.2, fpy.li/4r].]
2377+
| `+s.__rmul__(n)+` | ● | | `++n * s`++—concatenação repetida invertida
23782378
| `s.pop()` | ● | ● | Remove e devolve último itemfootnote:[`a_list.pop(p)` permite remover da posição `p`, mas `deque` não suporta essa opção.]
23792379
| `s.popleft()` | | ● | Remove e devolve primeiro item
23802380
| `s.remove(e)` | ● | | Remove o primeiro elemento de valor igual a `e`

vol1/cap03.adoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,9 @@ Padrões para mapeamentos se parecem com literais `dict`,
214214
mas podem casar com instâncias de qualquer subclasse real ou virtual de `collections.abc.Mapping`.footnote:[Uma
215215
subclasse virtual é
216216
qualquer classe registrada com uma chamada ao método `.register()` de uma ABC,
217-
como explicado na Seção 13.5.6 [vol.2, fpy.li/25]
218-
Um tipo implementado através da API Python/C também serve, se tiver bit de marcação específico setado no header.
219-
Veja https://fpy.li/2z[`Py_TPFLAGS_MAPPING`] (EN).]
217+
como explicado na Seção 13.5.6 [vol.2, fpy.li/25&#93;.
218+
Um tipo implementado através da API Python/C também serve, se tiver um bit de marcação específico setado no header.
219+
Veja `Py_TPFLAGS_MAPPING` [fpy.li/2z&#93; (EN).]
220220

221221
No <<ch_sequences>> nos concentramos apenas nos padrões de sequência,
222222
mas tipos diferentes de padrões podem ser combinados e aninhados.
@@ -389,7 +389,7 @@ TypeError: unhashable type: 'list'
389389

390390
O código de hash de um objeto pode ser diferente dependendo da versão de Python, da arquitetura da máquina,
391391
e pelo((("salt"))) _sal_ acrescentado ao cálculo do hash por razões de segurança.footnote:[Veja a
392-
https://fpy.li/pep456[PEP 456—Secure and interchangeable hash algorithm (Algoritmo de hash seguro e intercambiável_)] (EN)
392+
_PEP 456—Secure and interchangeable hash algorithm (Algoritmo de hash seguro e intercambiável)_ [fpy.li/pep456&#93; (EN)
393393
para saber mais sobre as implicações de segurança e as soluções adotadas.]
394394
O código de hash de um objeto corretamente implementado tem a garantia de ser constante apenas dentro de um processo Python.
395395

@@ -437,7 +437,7 @@ A <<mapping_methods_tbl>> mostra os métodos implementados por `dict` e pelas va
437437
| `d.pop(k, [default])` | ● | ● | ● | Remove e devolve valor em `k`, ou `default` ou `None`, se `k` não existir
438438
| `d.popitem()` | ● | ● | ● | Remove e devolve, na forma `(chave, valor)`, o último item inseridofootnote:[`OrderedDict.popitem(last=False)` remove o primeiro item inserido (FIFO). O argumento nomeado `last` não é suportado por `dict` ou `defaultdict`, pelo menos até Python 3.10b3.]
439439
| `+d.__reversed__()+` | ● | ● | ● | Suporte a `reverse(d)`—devolve um iterador de chaves, da última para a primeira a serem inseridas
440-
| `+d.__ror__(other)+` | ● | ● | ● | Suporte a `other \| dd`—operador de união invertido (Python ≥ 3.9)footnote:[Operadores invertidos são tratados no Capítulo 16 [vol.2, fpy.li/4r].]
440+
| `+d.__ror__(other)+` | ● | ● | ● | Suporte a `other \| dd`—operador de união invertido (Python ≥ 3.9)footnote:[Operadores invertidos são tratados no Capítulo 16 [vol.2, fpy.li/4r&#93;.]
441441
|`d.setdefault(k, [default])` | ● | ● | ● | Se `k in d`, devolve `d[k]`; senão, atribui `d[k] = default` e devolve isso
442442
| `+d.__setitem__(k, v)+` | ● | ● | ● | `d[k] = v`—coloca `v` em `k`
443443
| `d.update(m, [**kwargs])` | ● | ● | ● | Atualiza `d` com itens de um mapeamento ou iterável de pares `(chave, valor)`

vol1/cap05.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ include::../code/05-data-classes/typing_namedtuple/coordinates.py[tags=COORDINAT
170170
Apesar de `NamedTuple` aparecer na declaração `class` como uma superclasse, ela não é.
171171
`typing.NamedTuple` usa a funcionalidade avançada de uma
172172
metaclassefootnote:[As metaclasses são um dos assuntos tratados no
173-
Capítulo 24 [vol.3, fpy.li/53].] para customizar a criação da classe do usuário.
173+
Capítulo 24 [vol.3, fpy.li/53&#93;.] para customizar a criação da classe do usuário.
174174
Confira isso:
175175
176176
[source, python]
@@ -205,7 +205,7 @@ Observe que o corpo das classes no <<coord_tuple_ex>> e no <<coord_dataclass_ex>
205205
são idênticos—a diferença está na própria declaração `class`.
206206
O decorador `@dataclass` não depende de herança ou de uma metaclasse,
207207
então não deve interferir no uso desses mecanismos pelo
208-
usuário.footnote:[Decoradores de classe são discutidos no Capítulo 24 [vol.3, fpy.li/53],
208+
usuário.footnote:[Decoradores de classe são discutidos no Capítulo 24 [vol.3, fpy.li/53&#93;],
209209
na seção "Metaprogramação de classes", junto com as metaclasses.
210210
Ambos são formas de customizar o comportamento de uma classe além do que seria possível com herança.]
211211
A classe `Coordinate` no <<coord_dataclass_ex>> é uma subclasse de

vol1/cap07.adoc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,11 @@ Métodos:: Funções definidas no corpo de uma classe.
339339

340340
Classes:: Quando((("classes", "as callable objects"))) invocada, uma classe executa seu método
341341
`+__new__+` para criar uma instância, e a seguir `+__init__+`, para inicializá-la. Então a instância é devolvida ao usuário.
342-
Como não existe um operador `new` no Python, invocar uma classe é como invocar uma função.footnote:[Invocar uma classe normalmente cria uma instância daquela mesma classe, mas outros comportamentos são possíveis, sobrescrevendo o `+__new__+`. Veremos um exemplo disso na Seção 22.2.3 [vol.3, fpy.li/5b].]
342+
Como não existe um operador `new` no Python,
343+
invocar uma classe é como invocar uma função.footnote:[Invocar
344+
uma classe normalmente cria uma instância daquela mesma classe,
345+
mas outros comportamentos são possíveis, sobrescrevendo o `+__new__+`.
346+
Veremos um exemplo disso na Seção 22.2.3 [vol.3, fpy.li/5b&#93;.]
343347

344348
Instâncias de classe:: Se uma classe define um método `+__call__+`, suas instâncias podem então ser invocadas como funções—esse é o assunto da próxima seção.
345349

vol1/cap08.adoc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1880,7 +1880,11 @@ include::../code/08-def-type-hints/comparable/top_test.py[tags=TOP_TEST]
18801880
----
18811881
====
18821882
<1> A constante `typing.TYPE_CHECKING` é sempre `False` durante a execução do programa, mas os checadores de tipos fingem que ela é `True` quando estão fazendo a verificação.
1883-
<2> Declaração de tipo explícita para a variável `series`, para tornar mais fácil a leitura da saída do Mypy.footnote:[Sem essa dica de tipo, o Mypy inferiria o tipo de `series` como `Generator[Tuple[builtins.int, builtins.str*&#x5d;, None, None&#x5d;`, que é prolixo mas _consistente-com_ `Iterator[tuple[int, str&#x5d;&#x5d;`, como veremos na Seção 17.12 [vol.3, fpy.li/5k].]
1883+
<2> Declaração de tipo explícita para a variável `series`, para tornar mais fácil a leitura da saída do
1884+
Mypy.footnote:[Sem essa dica de tipo, o Mypy inferiria o tipo de `series` como
1885+
`Generator[Tuple[builtins.int, builtins.str*&#x5d;, None, None&#x5d;`,
1886+
que é prolixo mas _consistente-com_ `Iterator[tuple[int, str&#x5d;&#x5d;`,
1887+
como veremos na Seção 17.12 [vol.3, fpy.li/5k&#93;.]
18841888
<3> Esse `if` evita que as três linhas seguintes sejam executadas durante o teste.
18851889
<4> `reveal_type()` não pode ser chamada durante a execução, porque não é uma função regular, mas sim um mecanismo de depuração do Mypy - por isso não há `import` para ela.
18861890
Mypy vai produzir uma mensagem de depuração para cada chamada à pseudo-função `reveal_type()`, mostrando o tipo inferido do argumento.

0 commit comments

Comments
 (0)