10
10
# Alexandre B A Villares, 2021
11
11
# Mariana Costa <mrncstt@gmail.com>, 2021
12
12
# a76d6fb6142d7607ab0526dcbddb02d7_7bf0da0 <3b5fb0f281c8dfb4c0170f2ee2a6cfcf_843623>, 2021
13
- # Rafael Fontenelle <rffontenelle@gmail.com>, 2024
14
13
# Adorilson Bezerra <adorilson@gmail.com>, 2024
14
+ # Rafael Fontenelle <rffontenelle@gmail.com>, 2024
15
15
#
16
16
#, fuzzy
17
17
msgid ""
18
18
msgstr ""
19
19
"Project-Id-Version :Python 3.13\n "
20
20
"Report-Msgid-Bugs-To :\n "
21
- "POT-Creation-Date :2024-07-29 04:06 +0000\n "
21
+ "POT-Creation-Date :2024-08-09 16:36 +0000\n "
22
22
"PO-Revision-Date :2021-06-28 00:52+0000\n "
23
- "Last-Translator :Adorilson Bezerra <adorilson @gmail.com>, 2024\n "
23
+ "Last-Translator :Rafael Fontenelle <rffontenelle @gmail.com>, 2024\n "
24
24
"Language-Team :Portuguese (Brazil) (https://app.transifex.com/python-doc/ "
25
25
"teams/5390/pt_BR/)\n "
26
26
"MIME-Version :1.0\n "
@@ -568,6 +568,14 @@ msgid ""
568
568
"containing this work, although it may not be completely functional in this "
569
569
"release."
570
570
msgstr ""
571
+ "Com a aprovação da :pep:`703`, o trabalho está em andamento para remover a "
572
+ "GIL da implementação CPython do Python. Inicialmente, ele será implementado "
573
+ "como um sinalizador opcional de compilador ao construir o interpretador, e "
574
+ "assim construções separadas estarão disponíveis com e sem a GIL. A longo "
575
+ "prazo, a esperança é estabelecer uma única construção, uma vez que as "
576
+ "implicações de desempenho da remoção do GIL sejam totalmente compreendidas. "
577
+ "O Python 3.13 provavelmente será a primeira versão contendo esse trabalho, "
578
+ "embora possa não ser completamente funcional nesta versão."
571
579
572
580
#: ../../faq/library.rst:422
573
581
msgid ""
@@ -583,6 +591,18 @@ msgid ""
583
591
"compensate for the removal of the GIL. The Python 3.9 fork is the first "
584
592
"attempt at removing the GIL with an acceptable performance impact."
585
593
msgstr ""
594
+ "O trabalho atual para remover a GIL é baseado em um `fork do Python 3.9 com "
595
+ "a GIL removida <https://github.com/colesbury/nogil>`_ por Sam Gross. Antes "
596
+ "disso, na época do Python 1.5, Greg Stein implementou um conjunto abrangente "
597
+ "de patches (os patches de\" threads livres\" ) que removeu a GIL e a "
598
+ "substituiu por um travamento de granulação fina. Adam Olsen fez um "
599
+ "experimento semelhante em seu projeto `python-safethread <https://code."
600
+ "google.com/archive/p/python-safethread>`_. Infelizmente, ambos os "
601
+ "experimentos iniciais exibiram uma queda acentuada no desempenho de thread "
602
+ "único (pelo menos 30% mais lento), devido à quantidade de travamento de "
603
+ "granulação fina necessária para compensar a remoção da GIL. O fork do Python "
604
+ "3.9 é a primeira tentativa de remover a GIL com um impacto aceitável no "
605
+ "desempenho."
586
606
587
607
#: ../../faq/library.rst:437
588
608
msgid ""
@@ -594,6 +614,13 @@ msgid ""
594
614
"doing so; the :mod:`multiprocessing` module provides a lower-level API in "
595
615
"case you want more control over dispatching of tasks."
596
616
msgstr ""
617
+ "A presença da GIL nas versões atuais do Python não significa que você não "
618
+ "pode fazer bom uso do Python em máquinas com várias CPUs! Você só precisa "
619
+ "ser criativo ao dividir o trabalho entre vários *processos* em vez de vários "
620
+ "*threads*. A classe :class:`~concurrent.futures.ProcessPoolExecutor` no novo "
621
+ "módulo :mod:`concurrent.futures` fornece uma maneira fácil de fazer isso; o "
622
+ "módulo :mod:`multiprocessing` fornece uma API de nível inferior, caso você "
623
+ "queira mais controle sobre o despacho de tarefas."
597
624
598
625
#: ../../faq/library.rst:446
599
626
msgid ""
@@ -619,6 +646,14 @@ msgid ""
619
646
"since these must be written with multiple interpreters in mind in order to "
620
647
"be usable, so many older extension modules will not be usable."
621
648
msgstr ""
649
+ "Uma abordagem alternativa para reduzir o impacto da GIL é fazer da GIL uma "
650
+ "trava por estado do interpretador em vez de verdadeiramente global. Isso "
651
+ "foi :ref:`implementado pela primeira vez no Python 3.12 <whatsnew312-"
652
+ "pep684>` e está disponível na API C. Uma interface Python para ele é "
653
+ "esperada no Python 3.13. A principal limitação para ele no momento "
654
+ "provavelmente são módulos de extensão de terceiros, já que estes devem ser "
655
+ "escritos com múltiplos interpretadores em mente para serem utilizáveis, "
656
+ "então muitos módulos de extensão mais antigos não serão utilizáveis."
622
657
623
658
#: ../../faq/library.rst:462
624
659
msgid "Input and Output"
@@ -634,7 +669,7 @@ msgid ""
634
669
"see the :mod:`os` module. The two functions are identical; :func:`~os."
635
670
"unlink` is simply the name of the Unix system call for this function."
636
671
msgstr ""
637
- "Use ``os.remove(filename )`` ou ``os.unlink(filename )``;para documentação, "
672
+ "Use ``os.remove(arquivo )`` ou ``os.unlink(arquivo )``; para documentação, "
638
673
"veja o módulo :mod:`os`. As duas funções são idênticas; :func:`~os.unlink` é "
639
674
"simplesmente o nome da chamada do sistema para esta função no Unix."
640
675
@@ -646,10 +681,17 @@ msgid ""
646
681
"directories as long as they're empty; if you want to delete an entire "
647
682
"directory tree and its contents, use :func:`shutil.rmtree`."
648
683
msgstr ""
684
+ "Para remover um diretório, use :func:`os.rmdir`; use :func:`os.mkdir` para "
685
+ "criar um. ``os.makedirs(caminho)`` criará quaisquer diretórios "
686
+ "intermediários em ``path`` que não existam. ``os.removedirs(caminho)`` "
687
+ "removerá diretórios intermediários, desde que estejam vazios; se quiser "
688
+ "excluir toda uma árvore de diretórios e seu conteúdo, use :func:`shutil."
689
+ "rmtree`."
649
690
650
691
#: ../../faq/library.rst:477
651
692
msgid "To rename a file, use ``os.rename(old_path, new_path)``."
652
- msgstr "Para renomear um arquivos, use ``os.rename(old_path, new_path)``."
693
+ msgstr ""
694
+ "Para renomear um arquivos, use ``os.rename(caminho_antigo, caminho_novo)``."
653
695
654
696
#: ../../faq/library.rst:479
655
697
msgid ""
@@ -658,13 +700,20 @@ msgid ""
658
700
"There's also ``os.ftruncate(fd, offset)`` for files opened with :func:`os."
659
701
"open`, where *fd* is the file descriptor (a small integer)."
660
702
msgstr ""
703
+ "Para truncar um arquivo, abra-o usando ``f = open(arquivo,\" rb+\" )``, e use "
704
+ "``f.truncate(posição)``; a posição tem como padrão a posição atual de busca. "
705
+ "Há também ``os.ftruncate(fd, posição)`` para arquivos abertos com :func:`os."
706
+ "open`, onde *fd* é o descritor de arquivo (um pequeno inteiro)."
661
707
662
708
#: ../../faq/library.rst:484
663
709
msgid ""
664
710
"The :mod:`shutil` module also contains a number of functions to work on "
665
711
"files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and :"
666
712
"func:`~shutil.rmtree`."
667
713
msgstr ""
714
+ "O módulo :mod:`shutil` também contém uma série de funções para trabalhar em "
715
+ "arquivos, incluindo :func:`~shutil.copyfile`, :func:`~shutil.copytree` e :"
716
+ "func:`~shutil.rmtree`."
668
717
669
718
#: ../../faq/library.rst:490
670
719
msgid "How do I copy a file?"
@@ -680,6 +729,13 @@ msgid ""
680
729
"permissions and metadata, though using :func:`shutil.copy2` instead will "
681
730
"preserve most (though not all) of it."
682
731
msgstr ""
732
+ "O módulo :mod:`shutil` contém uma função :func:`~shutil.copyfile`. Observe "
733
+ "que em volumes NTFS do Windows, ele não copia `fluxos de dados alternativos "
734
+ "<https://en.wikipedia.org/wiki/NTFS#Alternate_data_stream_(ADS)>`_ nem "
735
+ "`forks de recursos <https://en.wikipedia.org/wiki/Resource_fork>`__ em "
736
+ "volumes HFS+ do macOS, embora ambos sejam raramente usados agora. Ele também "
737
+ "não copia permissões de arquivo e metadados, embora usar :func:`shutil."
738
+ "copy2` em vez disso preserve a maioria (embora não todos) deles."
683
739
684
740
#: ../../faq/library.rst:503
685
741
msgid "How do I read (or write) binary data?"
@@ -691,25 +747,35 @@ msgid ""
691
747
"`struct` module. It allows you to take a string containing binary data "
692
748
"(usually numbers) and convert it to Python objects; and vice versa."
693
749
msgstr ""
750
+ "Para ler ou escrever formatos de dados binários complexos, é melhor usar o "
751
+ "módulo :mod:`struct`. Ele permite que você pegue uma string contendo dados "
752
+ "binários (geralmente números) e a converta em objetos Python; e vice-versa."
694
753
695
754
#: ../../faq/library.rst:509
696
755
msgid ""
697
756
"For example, the following code reads two 2-byte integers and one 4-byte "
698
757
"integer in big-endian format from a file::"
699
758
msgstr ""
759
+ "Por exemplo, o código a seguir lê dois inteiros de 2 bytes e um inteiro de 4 "
760
+ "bytes no formato big-endian de um arquivo:"
700
761
701
762
#: ../../faq/library.rst:518
702
763
msgid ""
703
764
"The '>' in the format string forces big-endian data; the letter 'h' reads "
704
765
"one\" short integer\" (2 bytes), and 'l' reads one\" long integer\" (4 "
705
766
"bytes) from the string."
706
767
msgstr ""
768
+ "O '>' na string de formato força dados big-endian; a letra 'h' lê um "
769
+ "\" inteiro curto\" (2 bytes) e 'l' lê um\" inteiro longo\" (4 bytes) da "
770
+ "string."
707
771
708
772
#: ../../faq/library.rst:522
709
773
msgid ""
710
774
"For data that is more regular (e.g. a homogeneous list of ints or floats), "
711
775
"you can also use the :mod:`array` module."
712
776
msgstr ""
777
+ "Para dados mais regulares (por exemplo, uma lista homogênea de ints ou "
778
+ "floats), você também pode usar o módulo :mod:`array`."
713
779
714
780
#: ../../faq/library.rst:527
715
781
msgid ""
@@ -718,6 +784,10 @@ msgid ""
718
784
"instead (the default), the file will be open in text mode and ``f.read()`` "
719
785
"will return :class:`str` objects rather than :class:`bytes` objects."
720
786
msgstr ""
787
+ "Para ler e escrever dados binários, é obrigatório abrir o arquivo no modo "
788
+ "binário (aqui, passando ``\" rb\" `` para :func:`open`). Se você usar "
789
+ "``\" r\" `` em vez disso (o padrão), o arquivo será aberto no modo texto e ``f."
790
+ "read()`` retornará objetos :class:`str` em vez de objetos :class:`bytes`."
721
791
722
792
#: ../../faq/library.rst:535
723
793
msgid "I can't seem to use os.read() on a pipe created with os.popen(); why?"
@@ -731,18 +801,23 @@ msgid ""
731
801
"function. Thus, to read *n* bytes from a pipe *p* created with :func:`os."
732
802
"popen`, you need to use ``p.read(n)``."
733
803
msgstr ""
804
+ ":func:`os.read` é uma função de baixo nível que pega um descritor de "
805
+ "arquivo, um pequeno inteiro representando o arquivo aberto. :func:`os.popen` "
806
+ "cria um objeto arquivo de alto nível, o mesmo tipo retornado pela função "
807
+ "embutida :func:`open`. Assim, para ler *n* bytes de um pipe *p* criado com :"
808
+ "func:`os.popen`, você precisa usar ``p.read(n)``."
734
809
735
810
#: ../../faq/library.rst:623
736
811
msgid "How do I access the serial (RS232) port?"
737
812
msgstr "Como acesso a porta serial (RS232)?"
738
813
739
814
#: ../../faq/library.rst:625
740
815
msgid "For Win32, OSX, Linux, BSD, Jython, IronPython:"
741
- msgstr ""
816
+ msgstr "Para Win32, OSX, Linux, BSD, Jython, IronPython: "
742
817
743
818
#: ../../faq/library.rst:627
744
819
msgid ":pypi:`pyserial`"
745
- msgstr ""
820
+ msgstr ":pypi:`pyserial` "
746
821
747
822
#: ../../faq/library.rst:629
748
823
msgid "For Unix, see a Usenet post by Mitch Chapman:"
@@ -761,6 +836,8 @@ msgid ""
761
836
"Python :term:`file objects <file object>` are a high-level layer of "
762
837
"abstraction on low-level C file descriptors."
763
838
msgstr ""
839
+ "Os :term:`objetos arquivos <file object>` do Python são uma camada de alto "
840
+ "nível de abstração em descritores de arquivo C de baixo nível."
764
841
765
842
#: ../../faq/library.rst:640
766
843
msgid ""
@@ -770,6 +847,11 @@ msgid ""
770
847
"descriptor. This also happens automatically in ``f``'s destructor, when "
771
848
"``f`` becomes garbage."
772
849
msgstr ""
850
+ "Para a maioria dos objetos arquivo que você cria em Python por meio da "
851
+ "função embutida :func:`open`, ``f.close()`` marca o objeto arquivo Python "
852
+ "como fechado do ponto de vista do Python e também organiza o fechamento do "
853
+ "descritor de arquivo C subjacente. Isso também acontece automaticamente no "
854
+ "destrutor de ``f``, quando ``f`` se torna lixo."
773
855
774
856
#: ../../faq/library.rst:646
775
857
msgid ""
@@ -778,32 +860,43 @@ msgid ""
778
860
"marks the Python-level file object as being closed, but does *not* close the "
779
861
"associated C file descriptor."
780
862
msgstr ""
863
+ "Mas stdin, stdout e stderr são tratados de forma especial pelo Python, "
864
+ "devido ao status especial que também lhes é dado pelo C. Executar ``sys."
865
+ "stdout.close()`` marca o objeto arquivo de nível Python como fechado, mas "
866
+ "*não* fecha o descritor de arquivo C associado."
781
867
782
868
#: ../../faq/library.rst:651
783
869
msgid ""
784
870
"To close the underlying C file descriptor for one of these three, you should "
785
871
"first be sure that's what you really want to do (e.g., you may confuse "
786
872
"extension modules trying to do I/O). If it is, use :func:`os.close`::"
787
873
msgstr ""
874
+ "Para fechar o descritor de arquivo C subjacente para um desses três, você "
875
+ "deve primeiro ter certeza de que é isso que você realmente quer fazer (por "
876
+ "exemplo, você pode confundir módulos de extensão tentando fazer E/S). Se "
877
+ "for, use :func:`os.close`::"
788
878
789
879
#: ../../faq/library.rst:659
790
880
msgid "Or you can use the numeric constants 0, 1 and 2, respectively."
791
- msgstr "Ou você pode usar as constantesnumérias 0, 1 e 2, respectivamente."
881
+ msgstr "Ou você pode usar as constantesnuméricas 0, 1 e 2, respectivamente."
792
882
793
883
#: ../../faq/library.rst:663
794
884
msgid "Network/Internet Programming"
795
885
msgstr "Programação Rede / Internet"
796
886
797
887
#: ../../faq/library.rst:666
798
888
msgid "What WWW tools are there for Python?"
799
- msgstr "Quais ferramentas WWW existem no Python?"
889
+ msgstr "Quais ferramentaspara WWW existem no Python?"
800
890
801
891
#: ../../faq/library.rst:668
802
892
msgid ""
803
893
"See the chapters titled :ref:`internet` and :ref:`netdata` in the Library "
804
894
"Reference Manual. Python has many modules that will help you build server-"
805
895
"side and client-side web systems."
806
896
msgstr ""
897
+ "Veja os capítulos intitulados :ref:`internet` e :ref:`netdata` no Manual de "
898
+ "Referência da Biblioteca. Python tem muitos módulos que ajudarão você a "
899
+ "construir sistemas web do lado do servidor e do lado do cliente."
807
900
808
901
#: ../../faq/library.rst:674
809
902
msgid ""
@@ -848,10 +941,14 @@ msgid ""
848
941
"usr/sbin/sendmail``. The sendmail manual page will help you out. Here's "
849
942
"some sample code::"
850
943
msgstr ""
944
+ "Uma alternativa somente para Unix usa o sendmail. A localização do programa "
945
+ "sendmail varia entre os sistemas; às vezes é ``/usr/lib/sendmail``, às vezes "
946
+ "``/usr/sbin/sendmail``. A página de manual do sendmail vai ajudar você. Aqui "
947
+ "está um código de exemplo::"
851
948
852
949
#: ../../faq/library.rst:732
853
950
msgid "How do I avoid blocking in the connect() method of a socket?"
854
- msgstr "Como evitoo bloqueio no método connect() de um soquete?"
951
+ msgstr "Como evitoum bloqueio no método connect() de um soquete?"
855
952
856
953
#: ../../faq/library.rst:734
857
954
msgid ""
@@ -871,6 +968,13 @@ msgid ""
871
968
"return different values, so you're going to have to check what's returned on "
872
969
"your system."
873
970
msgstr ""
971
+ "Para evitar que a conexão TCP bloqueie, você pode definir o soquete para o "
972
+ "modo sem bloqueio. Então, quando você fizer o :meth:`~socket.socket."
973
+ "connect`, você se conectará imediatamente (improvável) ou obterá uma exceção "
974
+ "que contém o número de erro como ``.errno``. ``errno.EINPROGRESS`` indica "
975
+ "que a conexão está em andamento, mas ainda não terminou. Diferentes sistemas "
976
+ "operacionais retornarão valores diferentes, então você terá que verificar o "
977
+ "que é retornado no seu sistema."
874
978
875
979
#: ../../faq/library.rst:745
876
980
msgid ""
@@ -880,6 +984,11 @@ msgid ""
880
984
"indicate that you're connected -- or you can pass this socket to :meth:"
881
985
"`select.select` to check if it's writable."
882
986
msgstr ""
987
+ "Você pode usar o método :meth:`~socket.socket.connect_ex` para evitar criar "
988
+ "uma exceção. Ele retornará apenas o valor de errno. Para pesquisar, você "
989
+ "pode chamar :meth:`~socket.socket.connect_ex` novamente mais tarde -- ``0`` "
990
+ "ou ``errno.EISCONN`` indicam que você está conectado -- ou você pode passar "
991
+ "este soquete para :meth:`select.select` para verificar se ele é gravável."
883
992
884
993
#: ../../faq/library.rst:753
885
994
msgid ""
@@ -888,6 +997,10 @@ msgid ""
888
997
"network code. The third-party `Twisted <https://twisted.org/>`_ library is a "
889
998
"popular and feature-rich alternative."
890
999
msgstr ""
1000
+ "O módulo :mod:`asyncio` fornece uma biblioteca assíncrona de thread única e "
1001
+ "concorrente de propósito geral, que pode ser usada para escrever código de "
1002
+ "rede não bloqueante. A biblioteca de terceiros `Twisted <https://twisted.org/"
1003
+ ">`_ é uma alternativa popular e rica em recursos."
891
1004
892
1005
#: ../../faq/library.rst:761
893
1006
msgid "Databases"
@@ -908,6 +1021,10 @@ msgid ""
908
1021
"`sqlite3` module, which provides a lightweight disk-based relational "
909
1022
"database."
910
1023
msgstr ""
1024
+ "Interfaces para hashes baseados em disco, como :mod:`DBM <dbm.ndbm>` e :mod:"
1025
+ "`GDBM <dbm.gnu>` também estão incluídas no Python padrão. Há também o "
1026
+ "módulo :mod:`sqlite3`, que fornece um banco de dados relacional baseado em "
1027
+ "disco leve."
911
1028
912
1029
#: ../../faq/library.rst:773
913
1030
msgid ""
@@ -930,6 +1047,11 @@ msgid ""
930
1047
"mod:`shelve` library module uses pickle and (g)dbm to create persistent "
931
1048
"mappings containing arbitrary Python objects."
932
1049
msgstr ""
1050
+ "O módulo de biblioteca :mod:`pickle` resolve isso de uma maneira muito geral "
1051
+ "(embora você ainda não possa armazenar coisas como arquivos abertos, "
1052
+ "soquetes ou janelas), e o módulo de biblioteca :mod:`shelve` usa pickle e "
1053
+ "(g)dbm para criar mapeamentos persistentes contendo objetos Python "
1054
+ "arbitrários."
933
1055
934
1056
#: ../../faq/library.rst:788
935
1057
msgid "Mathematics and Numerics"
@@ -970,6 +1092,8 @@ msgstr ""
970
1092
msgid ""
971
1093
"``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution."
972
1094
msgstr ""
1095
+ "``normalvariate(mean, sdev)`` gera números pseudoaleatórios que seguem uma "
1096
+ "distribuição normal (Gaussiana)."
973
1097
974
1098
#: ../../faq/library.rst:807
975
1099
msgid "Some higher-level functions operate on sequences directly, such as:"
@@ -979,10 +1103,13 @@ msgstr ""
979
1103
#: ../../faq/library.rst:809
980
1104
msgid "``choice(S)`` chooses a random element from a given sequence."
981
1105
msgstr ""
1106
+ "``choice(S)`` escolhe um elemento aleatório de uma determinada sequência."
982
1107
983
1108
#: ../../faq/library.rst:810
984
1109
msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly."
985
1110
msgstr ""
1111
+ "``shuffle(L)`` embaralha uma lista internamente, ou seja permuta seus "
1112
+ "elementos aleatoriamente."
986
1113
987
1114
#: ../../faq/library.rst:812
988
1115
msgid ""