Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit67bb7a1

Browse files
Update translations
1 parent337c371 commit67bb7a1

File tree

6 files changed

+473
-48
lines changed

6 files changed

+473
-48
lines changed

‎howto/regex.po

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ msgid ""
1111
msgstr ""
1212
"Project-Id-Version:Python 3.12\n"
1313
"Report-Msgid-Bugs-To:\n"
14-
"POT-Creation-Date:2025-03-21 14:55+0000\n"
14+
"POT-Creation-Date:2025-04-18 14:52+0000\n"
1515
"PO-Revision-Date:2024-05-11 00:32+0000\n"
1616
"Last-Translator:Rafael Fontenelle <rffontenelle@gmail.com>, 2025\n"
1717
"Language-Team:Portuguese (Brazil) (https://app.transifex.com/python-doc/"
@@ -1254,6 +1254,10 @@ msgid ""
12541254
">>> re.match(r'From\\s+', 'From amk Thu May 14 19:12:10 1998')\n"
12551255
"<re.Match object; span=(0, 5), match='From '>"
12561256
msgstr""
1257+
">>> print(re.match(r'From\\s+', 'Fromage amk'))\n"
1258+
"None\n"
1259+
">>> re.match(r'From\\s+', 'From amk Thu May 14 19:12:10 1998')\n"
1260+
"<re.Match object; span=(0, 5), match='From '>"
12571261

12581262
#:../../howto/regex.rst:509
12591263
msgid""
@@ -1680,6 +1684,10 @@ msgid ""
16801684
">>> print(re.search('^From', 'Reciting From Memory'))\n"
16811685
"None"
16821686
msgstr""
1687+
">>> print(re.search('^From', 'From Here to Eternity'))\n"
1688+
"<re.Match object; span=(0, 4), match='From'>\n"
1689+
">>> print(re.search('^From', 'Reciting From Memory'))\n"
1690+
"None"
16831691

16841692
#:../../howto/regex.rst:719
16851693
msgid"To match a literal ``'^'``, use ``\\^``."
@@ -1706,6 +1714,12 @@ msgid ""
17061714
">>> print(re.search('}$', '{block}\\n'))\n"
17071715
"<re.Match object; span=(6, 7), match='}'>"
17081716
msgstr""
1717+
">>> print(re.search('}$', '{block}'))\n"
1718+
"<re.Match object; span=(6, 7), match='}'>\n"
1719+
">>> print(re.search('}$', '{block} '))\n"
1720+
"None\n"
1721+
">>> print(re.search('}$', '{block}\\n'))\n"
1722+
"<re.Match object; span=(6, 7), match='}'>"
17091723

17101724
#:../../howto/regex.rst:732
17111725
msgid""
@@ -2002,6 +2016,8 @@ msgid ""
20022016
">>> m.groups()\n"
20032017
"('abc', 'b')"
20042018
msgstr""
2019+
">>> m.group(2,1,2)\n"
2020+
"('b', 'abc', 'b')"
20052021

20062022
#:../../howto/regex.rst:856
20072023
msgid""
@@ -2111,12 +2127,18 @@ msgid ""
21112127
"Perl's extension syntax. If the first character after the question mark is "
21122128
"a ``P``, you know that it's an extension that's specific to Python."
21132129
msgstr""
2130+
"Python oferece suporte a diversas extensões do Perl e adiciona uma sintaxe "
2131+
"de extensão à sintaxe de extensão do Perl. Se o primeiro caractere após o "
2132+
"ponto de interrogação for um ``P``, você sabe que se trata de uma extensão "
2133+
"específica do Python."
21142134

21152135
#:../../howto/regex.rst:904
21162136
msgid""
21172137
"Now that we've looked at the general extension syntax, we can return to the "
21182138
"features that simplify working with groups in complex REs."
21192139
msgstr""
2140+
"Agora que vimos a sintaxe geral da extensão, podemos retornar aos recursos "
2141+
"que simplificam o trabalho com grupos em REs complexas."
21202142

21212143
#:../../howto/regex.rst:907
21222144
msgid""
@@ -2140,6 +2162,12 @@ msgid ""
21402162
">>> m.groups()\n"
21412163
"()"
21422164
msgstr""
2165+
">>> m = re.match(\"([abc])+\",\"abc\")\n"
2166+
">>> m.groups()\n"
2167+
"('c',)\n"
2168+
">>> m = re.match(\"(?:[abc])+\",\"abc\")\n"
2169+
">>> m.groups()\n"
2170+
"()"
21432171

21442172
#:../../howto/regex.rst:919
21452173
msgid""
@@ -2206,13 +2234,18 @@ msgid ""
22062234
"Additionally, you can retrieve named groups as a dictionary with :meth:`~re."
22072235
"Match.groupdict`::"
22082236
msgstr""
2237+
"Além disso, você pode recuperar grupos nomeados como um dicionário com :meth:"
2238+
"`~re.Match.groupdict`::"
22092239

22102240
#:../../howto/regex.rst:949
22112241
msgid""
22122242
">>> m = re.match(r'(?P<first>\\w+) (?P<last>\\w+)', 'Jane Doe')\n"
22132243
">>> m.groupdict()\n"
22142244
"{'first': 'Jane', 'last': 'Doe'}"
22152245
msgstr""
2246+
">>> m = re.match(r'(?P<first>\\w+) (?P<last>\\w+)', 'Jane Doe')\n"
2247+
">>> m.groupdict()\n"
2248+
"{'first': 'Jane', 'last': 'Doe'}"
22162249

22172250
#:../../howto/regex.rst:953
22182251
msgid""
@@ -2233,6 +2266,12 @@ msgid ""
22332266
" r' (?P<zonen>[-+])(?P<zoneh>[0-9][0-9])(?P<zonem>[0-9][0-9])'\n"
22342267
" r'\"')"
22352268
msgstr""
2269+
"InternalDate = re.compile(r'INTERNALDATE\"'\n"
2270+
" r'(?P<day>[ 123][0-9])-(?P<mon>[A-Z][a-z][a-z])-'\n"
2271+
" r'(?P<year>[0-9][0-9][0-9][0-9])'\n"
2272+
" r' (?P<hour>[0-9][0-9]):(?P<min>[0-9][0-9]):(?P<sec>[0-9][0-9])'\n"
2273+
" r' (?P<zonen>[-+])(?P<zoneh>[0-9][0-9])(?P<zonem>[0-9][0-9])'\n"
2274+
" r'\"')"
22362275

22372276
#:../../howto/regex.rst:964
22382277
msgid""
@@ -2344,6 +2383,12 @@ msgid ""
23442383
"expression matches ``foo.bar`` and ``autoexec.bat`` and ``sendmail.cf`` and "
23452384
"``printers.conf``."
23462385
msgstr""
2386+
"Observe que o ``.`` precisa ser tratado de forma especial, pois é um "
2387+
"metacaractere e, portanto, está dentro de uma classe de caracteres para "
2388+
"corresponder apenas a esse caractere específico. Observe também o ``$`` ao "
2389+
"final; ele é adicionado para garantir que todo o restante da string seja "
2390+
"incluído na extensão. Esta expressão regular corresponde a ``foo.bar``, "
2391+
"``autoexec.bat``, ``sendmail.cf`` e ``printers.conf``."
23472392

23482393
#:../../howto/regex.rst:1013
23492394
msgid""

‎library/pickle.po

Lines changed: 133 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ msgid ""
1111
msgstr ""
1212
"Project-Id-Version:Python 3.12\n"
1313
"Report-Msgid-Bugs-To:\n"
14-
"POT-Creation-Date:2025-02-14 14:53+0000\n"
14+
"POT-Creation-Date:2025-04-11 14:54+0000\n"
1515
"PO-Revision-Date:2024-05-11 00:33+0000\n"
1616
"Last-Translator:Rafael Fontenelle <rffontenelle@gmail.com>, 2025\n"
1717
"Language-Team:Portuguese (Brazil) (https://app.transifex.com/python-doc/"
@@ -1634,6 +1634,99 @@ msgid ""
16341634
"if __name__ == '__main__':\n"
16351635
" main()\n"
16361636
msgstr""
1637+
"# Exemplo simples que mostra como o ID persistente pode ser usado\n"
1638+
"# serializar com pickle objetos externos por referência.\n"
1639+
"\n"
1640+
"import pickle\n"
1641+
"import sqlite3\n"
1642+
"from collections import namedtuple\n"
1643+
"\n"
1644+
"# Classe simples que representa um registro em nosso banco de dados.\n"
1645+
"MemoRecord = namedtuple(\"MemoRecord\",\"key, task\")\n"
1646+
"\n"
1647+
"class DBPickler(pickle.Pickler):\n"
1648+
"\n"
1649+
" def persistent_id(self, obj):\n"
1650+
" # Em vez de conservar MemoRecord como uma instância de classe "
1651+
"regular,\n"
1652+
" # emitimos um ID persistente.\n"
1653+
" if isinstance(obj, MemoRecord):\n"
1654+
" # Aqui, nosso ID persistente é simplesmente uma tupla, contendo\n"
1655+
" # uma tag e uma chave, que se refere a um registro específico\n"
1656+
" # no banco de dados.\n"
1657+
" return (\"MemoRecord\", obj.key)\n"
1658+
" else:\n"
1659+
" # Se obj não tiver um ID persistente, retorna None. Significa "
1660+
"que\n"
1661+
" # obj precisa ser conservado como de costume.\n"
1662+
" return None\n"
1663+
"\n"
1664+
"\n"
1665+
"class DBUnpickler(pickle.Unpickler):\n"
1666+
"\n"
1667+
" def __init__(self, file, connection):\n"
1668+
" super().__init__(file)\n"
1669+
" self.connection = connection\n"
1670+
"\n"
1671+
" def persistent_load(self, pid):\n"
1672+
" # Este método é invocado sempre que um ID persistente é encontrado.\n"
1673+
" # Aqui, pid é a tupla retornada por DBPickler.\n"
1674+
" cursor = self.connection.cursor()\n"
1675+
" type_tag, key_id = pid\n"
1676+
" if type_tag ==\"MemoRecord\":\n"
1677+
" # Busca o registro referenciado no banco de dados e retorna-o.\n"
1678+
" cursor.execute(\"SELECT * FROM memos WHERE key=?\", "
1679+
"(str(key_id),))\n"
1680+
" key, task = cursor.fetchone()\n"
1681+
" return MemoRecord(key, task)\n"
1682+
" else:\n"
1683+
" # Sempre levanta um erro se você puder retornar o objeto "
1684+
"correto.\n"
1685+
" # Caso contrário, a desserialização com pickle considerará que\n"
1686+
" # None é o objeto referenciado pelo ID persistente.\n"
1687+
" raise pickle.UnpicklingError(\"unsupported persistent object\")\n"
1688+
"\n"
1689+
"\n"
1690+
"def main():\n"
1691+
" import io\n"
1692+
" import pprint\n"
1693+
"\n"
1694+
" # Inicializa e popula nosso banco de dados.\n"
1695+
" conn = sqlite3.connect(\":memory:\")\n"
1696+
" cursor = conn.cursor()\n"
1697+
" cursor.execute(\"CREATE TABLE memos(key INTEGER PRIMARY KEY, task "
1698+
"TEXT)\")\n"
1699+
" tasks = (\n"
1700+
" 'give food to fish',\n"
1701+
" 'prepare group meeting',\n"
1702+
" 'fight with a zebra',\n"
1703+
" )\n"
1704+
" for task in tasks:\n"
1705+
" cursor.execute(\"INSERT INTO memos VALUES(NULL, ?)\", (task,))\n"
1706+
"\n"
1707+
" # Busca os registros a serem serializados com pickle.\n"
1708+
" cursor.execute(\"SELECT * FROM memos\")\n"
1709+
" memos = [MemoRecord(key, task) for key, task in cursor]\n"
1710+
" # Salva os registros usando nosso DBPickler personalizado.\n"
1711+
" file = io.BytesIO()\n"
1712+
" DBPickler(file).dump(memos)\n"
1713+
"\n"
1714+
" print(\"Pickled records:\")\n"
1715+
" pprint.pprint(memos)\n"
1716+
"\n"
1717+
" # Atualiza um registro, só por precaução.\n"
1718+
" cursor.execute(\"UPDATE memos SET task='learn italian' WHERE key=1\")\n"
1719+
"\n"
1720+
" # Carrega os registros do fluxo de dados pickle.\n"
1721+
" file.seek(0)\n"
1722+
" memos = DBUnpickler(file, conn).load()\n"
1723+
"\n"
1724+
" print(\"Unpickled records:\")\n"
1725+
" pprint.pprint(memos)\n"
1726+
"\n"
1727+
"\n"
1728+
"if __name__ == '__main__':\n"
1729+
" main()\n"
16371730

16381731
#:../../library/pickle.rst:782
16391732
msgid"Dispatch Tables"
@@ -1804,6 +1897,14 @@ msgid ""
18041897
">>> new_reader.readline()\n"
18051898
"'3: Goodbye!'"
18061899
msgstr""
1900+
">>> reader = TextReader(\"hello.txt\")\n"
1901+
">>> reader.readline()\n"
1902+
"'1: Hello world!'\n"
1903+
">>> reader.readline()\n"
1904+
"'2: I am line number two.'\n"
1905+
">>> new_reader = pickle.loads(pickle.dumps(reader))\n"
1906+
">>> new_reader.readline()\n"
1907+
"'3: Goodbye!'"
18071908

18081909
#:../../library/pickle.rst:888
18091910
msgid"Custom Reduction for Types, Functions, and Other Objects"
@@ -1896,6 +1997,33 @@ msgid ""
18961997
"assert unpickled_class.__name__ ==\"MyClass\"\n"
18971998
"assert unpickled_class.my_attribute == 1"
18981999
msgstr""
2000+
"import io\n"
2001+
"import pickle\n"
2002+
"\n"
2003+
"class MyClass:\n"
2004+
" my_attribute = 1\n"
2005+
"\n"
2006+
"class MyPickler(pickle.Pickler):\n"
2007+
" def reducer_override(self, obj):\n"
2008+
"\"\"\"Redutor personalizado para MyClass.\"\"\"\n"
2009+
" if getattr(obj,\"__name__\", None) ==\"MyClass\":\n"
2010+
" return type, (obj.__name__, obj.__bases__,\n"
2011+
" {'my_attribute': obj.my_attribute})\n"
2012+
" else:\n"
2013+
" # Para qualquer outro objeto, recorre à redução de costume\n"
2014+
" return NotImplemented\n"
2015+
"\n"
2016+
"f = io.BytesIO()\n"
2017+
"p = MyPickler(f)\n"
2018+
"p.dump(MyClass)\n"
2019+
"\n"
2020+
"del MyClass\n"
2021+
"\n"
2022+
"unpickled_class = pickle.loads(f.getvalue())\n"
2023+
"\n"
2024+
"assert isinstance(unpickled_class, type)\n"
2025+
"assert unpickled_class.__name__ ==\"MyClass\"\n"
2026+
"assert unpickled_class.my_attribute == 1"
18992027

19002028
#:../../library/pickle.rst:948
19012029
msgid"Out-of-band Buffers"
@@ -2142,6 +2270,10 @@ msgid ""
21422270
"hello world\n"
21432271
"0"
21442272
msgstr""
2273+
">>> import pickle\n"
2274+
">>> pickle.loads(b\"cos\\nsystem\\n(S'echo hello world'\\ntR.\")\n"
2275+
"hello world\n"
2276+
"0"
21452277

21462278
#:../../library/pickle.rst:1082
21472279
msgid""

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp