# Python Fluente, second edition: the Portuguese translation of Fluent Python

> This repository holds the official Portuguese translation of Fluent Python, Second Edition, produced by translators and reviewed by the community, and it documents its own provenance and its Creative Commons licence with unusual care. It suits Portuguese-speaking Python developers who want the second edition in their own language, and it is a book project rather than a library.

**pythonfluente/pythonfluente2e** — Python Fluente, Segunda Edição

- Repository: https://github.com/pythonfluente/pythonfluente2e
- Website: https://pythonfluente.com
- Stars: 521 · Forks: 129
- Language: Python
- License: NOASSERTION
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/pythonfluente-pythonfluente2e

## A translation with a stated chain of authority

The README opens with the provenance of the work. It is the official translation of Fluent Python, Second Edition from O'Reilly, translated by pauloc, produced by ramalho, and reviewed by the community.

That chain of attribution matters more here than it would for a software project, because the words on the page belong to someone else. The README records that this translation was made directly from the original English text with the authorisation of O'Reilly Media. It also records the copyright line, Python Fluente, Segunda Edicao, copyright 2023 Luciano Ramalho.

The note at the end of the README is the one that pre-empts a specific misunderstanding. This is not a derivative work of the first edition translation, Python Fluente 1a edition, published by Editora Novatec in 2015, and any resemblance is accidental.

For a reader, the practical consequence is that this is a translation of the second edition specifically, and it is the second edition that carries the coverage of modern Python: the dict and set syntax updates, the pattern matching coverage, the typing and dataclass discussion, and the rewritten functional programming material. The repository records the translation as complete, with all five parts marked done in the progress diagram at the top of the README, chapters 1 through 24, and a legend explaining that a filled block means a translated chapter.

The homepage is pythonfluente.com, and the repository topics are `asciidoc`, `book` and `python`, which is the honest description of what this is.

## The licence is Creative Commons BY-NC-ND, and the README explains it clause by clause

The licensing section is the most detailed part of the README, and it is worth reading in full because the terms are unusual for a technical book.

The work is licensed as Creative Commons, Attribution-NonCommercial-NoDerivatives 4.0 International. The README restates the three terms in Portuguese under the labels Atribuicao, Nao Comercial and Sem Derivacoes, and the third one carries the most consequence.

You must give appropriate credit and provide a link to the licence. You may not use the text for commercial purposes. And you may remix, transform or create from the text only for your own use; to distribute a derivative work, you must obtain written permission from the author.

The README then gives the procedure for that permission. Register an issue in the repository to communicate your intention to redistribute or publish a derived work in any medium, and wait for a response from the author. The issue link is given as the practical route to that permission.

Two implications follow directly. A company cannot use this book as the basis for internal training material without a licensing conversation, because that is a commercial use of a no-derivatives work. And a reader who wants to publish their own edition, or a fork with modifications, has to ask first rather than just push a branch.

The project listing records the licence as one GitHub cannot classify, which is consistent with a Creative Commons terms document rather than a software licence. The `LICENSE` file in the repository is the file that governs, and this description of the terms is a reading of what the README states rather than legal advice.

For comparison, the software most readers will actually use alongside this book is under a permissive licence, and that difference is the one to keep in mind when deciding what to do with each.

## The repository is a book production pipeline, not just text

The top level directory listing shows that this is a working publishing setup rather than a folder of Markdown files.

The AsciiDoc source lives in `vol1/`, `vol2/` and `vol3/`, the three volume directories, and the `README.adoc` file is itself AsciiDoc, with a `:xrefstyle: short` attribute and a `:note-caption:` setting at the top. Alongside the volumes there is `code/` for the book's code listings, `images/` for the figures, `glifos/` for glyphs, `callouts/` for the callout markup, `calango/` which is the AsciiDoctor extension used to render callouts, `links/` for link targets, `online/` for the web edition, `print/` for the print-oriented assets, and `pdf/` for the PDF output.

Then there are the build documents, and their names say what they do. `como-gerar-o-livro.md` is how to generate the book, `gerar-epub.md` is the EPUB generation, `guia-de-estilo.adoc` is the style guide, and `atributos-pt_BR.adoc` holds the shared attributes for the Brazilian Portuguese locale. `replacer.ipynb` is a Jupyter notebook, which tells you that at least one of the tooling steps is a notebook rather than a shell script.

The `ferramentas/` directory is the tools directory, and the `online/` directory is the web version. There is a `Gemfile` and `Gemfile.lock` alongside a `.ruby-version` file, so part of the toolchain is Ruby, and `requirements.txt` holds the Python side.

The version scheme visible in the release tags matches this structure. The most recent tags are `trilogia-2026-03-23` for the PDF and the print edition, `trilogia-completa` for the complete edition, and `vol1-rev14` for a volume revision, so releases are named for the artefact and the revision rather than for a version number.

## The Python side of the build, pinned exactly

The `requirements.txt` file is short and every version is pinned exactly, which is the convention for a reproducible book build.

The list is:

```python
anyio==4.9.0
certifi==2025.4.26
h11==0.16.0
httpcore==1.0.9
httpx==0.28.1
idna==3.10
iniconfig==2.1.0
packaging==25.0
pluggy==1.6.0
Pygments==2.19.1
pytest==8.4.0
pytest-datadir==1.7.2
ruff==0.11.11
sniffio==1.3.1
```

Two entries explain the shape of the tooling. `pytest` with `pytest-datadir` is how the code examples in the book are tested, with the data directory fixture providing the files each example expects. `ruff` is the linter and formatter, and there is a `ruff.toml` at the top level configuring it, so the code listings are held to a consistent style.

The rest of the list is the HTTP client stack: `httpx` with `h11`, `httpcore`, `anyio`, `sniffio` and `idna`, plus `certifi` for the certificate bundle and `packaging` and `pluggy` for the plugin and version machinery that pytest depends on. `Pygments` is the syntax highlighter, which is what a tool that renders Python for a book would use.

The dependency set is the clearest statement of what this project is. There is no application framework, no web server, no database. There is a test runner, a linter, a highlighter and an HTTP client, because the book needs to make HTTP requests to check that the examples behave, and the pinned versions are what make the build reproducible across a team of translators and reviewers.

## Where this repository is the wrong thing to reach for

The first wrong-tool case is a developer who wants the English text. The README links to the O'Reilly listing for Fluent Python, Second Edition, and this repository is the Portuguese rendering of it. If you read English, the original is the same book with the publisher's own distribution, formats and errata process.

The second is anyone who needs a permissively licensed Python reference to build on. The BY-NC-ND terms mean a commercial project cannot use this text as documentation, cannot use it for internal training material, and cannot publish a derived work without written permission from the author. A library that is MIT or BSD licensed is a different proposition entirely, and for most professional use the constraint is decisive rather than a detail to work around.

The third is a reader who wants to run the code. The listings in `code/` are excerpts formatted for a book, and the repository's tooling tests them, but the repository is not a package you install and import. The examples in a book are also deliberately partial in a way that a working module would not be.

The fourth is translation of the translation. The README is explicit that this is not a derivative of the first edition translation, and the no-derivatives clause means that any further translation, an abridgement, or a study guide built from the text is a derivative work in the licence's sense. The README's own instruction is to open an issue and wait for the author's answer, which is a slow path by design.

The alternative worth naming is the original English edition from O'Reilly, which carries the publisher's own terms and formats. The difference in approach is that the English edition is a commercial publication with normal book licensing and errata, while this repository is a community translation produced under a licence chosen to keep the text from being reused commercially. If your use is reading and learning, both work. If your use is redistribution, only one of them works without a conversation.

## Maintenance, the community process, and the state of the translation

The last push to the default branch was on 2026-10-01, and the repository is not archived. The release history shows the artefact-oriented naming, with `trilogia-2026-03-23` for the PDF and print edition, `trilogia-completa` for the complete edition, and `vol1-rev14` for a volume revision.

So the cadence in 2026 has been roughly a revision every couple of months, with the most recent PDF and print build dated 2026-03-23 and the complete edition from 2026-03-03. A book translation that keeps producing PDF, print and complete editions on a rolling basis is a project that is being maintained, and the tooling in the tree is what makes that possible, since a book of this size cannot be typeset by hand each time.

The review process is part of the design, not an afterthought. The README credits the translation to pauloc, the production to ramalho, and the review to the community, which means the text passes through people other than the translator, and a translation of a book with this much technical vocabulary is where that matters.

The repository also carries `CONTRIBUTING.md`, a `CHANGELOG.md` is not in the top level listing, and the `code/` directory holds the listings that the `pytest` and `pytest-datadir` setup tests. The `.github/` directory holds the workflow definitions, and `.vscode/` and `ruff.toml` are there for editor and lint configuration.

One practical detail for anyone working in the tree: the AsciiDoc is Brazilian Portuguese throughout, and the shared attributes live in `atributos-pt_BR.adoc`, so a change to locale-specific spelling or formatting belongs there rather than in the chapter files. That is the kind of separation that keeps a 24-chapter translation consistent, and it is the reason the project has a `guia-de-estilo.adoc` style guide alongside it.

## Conclusion

Adopt this repository if you are a Portuguese-speaking Python developer who wants Fluent Python, Second Edition in Portuguese, since the translation is complete, officially authorised and produced by the original author with the community. Do not adopt it if you need the English text, if you need a permissively licensed work you can build a commercial product on, or if you want the interactive code examples runnable, because the book is a translation artefact and its licensing forbids commercial use and redistribution of derivatives. Before you use it, read the provenance note, which states the translation was made directly from the original English text with O'Reilly's authorisation, and file an issue as the README instructs if you intend to redistribute any derived work, since the no-derivatives clause requires the author's written permission.

## FAQ

### What is Python Fluente, Segunda Edicao?

It is the official Portuguese translation of Fluent Python, Second Edition from O'Reilly, translated by pauloc, produced by ramalho and reviewed by the community. The README records that the translation was made directly from the original English text with the authorisation of O'Reilly Media, and the progress diagram shows all 24 chapters in five parts translated.

### What licence does Python Fluente, Segunda Edicao use?

Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International. The README states that you must give credit and link the licence, may not use the text for commercial purposes, and may remix or transform it only for your own use; to distribute a derived work you must obtain written permission from the author by registering an issue and waiting for a response.

### Is Python Fluente 2e a translation of the first Portuguese edition?

No. The README states explicitly that this is not a derivative work of the first edition translation, Python Fluente 1a edition, published by Editora Novatec in 2015, and that any resemblance is accidental. The copyright line reads Python Fluente, Segunda Edicao, copyright 2023 Luciano Ramalho.

### How is the Python Fluente 2e book built?

The repository is an AsciiDoc book project with the source in `vol1/`, `vol2/` and `vol3/` and separate directories for code, images, callouts, and the online, print and PDF editions. Build instructions are in `como-gerar-o-livro.md` and `gerar-epub.md`, the style guide is `guia-de-estilo.adoc`, and the toolchain mixes Ruby, with a `Gemfile` and `.ruby-version`, and Python, with `requirements.txt` pinning `httpx`, `pytest`, `pytest-datadir` and `ruff`.

### Can I use Python Fluente, Segunda Edicao commercially or publish a derivative?

Not without permission. The licence is NonCommercial and NoDerivatives, so the text may not be used for commercial purposes, and a derived work may only be created for your own use. To redistribute or publish a derivative in any medium, the README asks you to register an issue and wait for the author's answer.

## Sources

- [Issues](https://github.com/pythonfluente/pythonfluente2e/issues)
- [Project website](https://pythonfluente.com)
- [pythonfluente/pythonfluente2e on GitHub](https://github.com/pythonfluente/pythonfluente2e)
- [README](https://github.com/pythonfluente/pythonfluente2e/blob/main/README.md)
- [Releases](https://github.com/pythonfluente/pythonfluente2e/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/pythonfluente-pythonfluente2e
