# \[ANN\] PrettyTables v3.0.0

**URL:** <https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821>\
**Category:** Package Announcements\
**Tags:** prettytables\
**Created:** [August 25, 2025, 1:53am UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821 "2025-08-25T01:53:49Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![Ronis\_BR](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ronis_br/32/50999_2.png) [@Ronis\_BR](https://discourse.julialang.org/u/Ronis_BR)\
**Post date:** [August 27, 2025, 1:42pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/41 "2025-08-27T13:42:00Z")

</div>

> [@juliohm](#):
>
> Looking forward to that. [DataFrames.jl](https://juliaregistries.github.io/General/packages/redirect_to_repo/DataFrames) is locking further updates.

Almost done!

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [August 27, 2025, 1:44pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/42 "2025-08-27T13:44:11Z")

</div>

@Ronis_BR I did hit another blocker today. CUDA.jl also needs an update after DataFrames.jl.

I am actually surprised that CUDA.jl depends on DataFrames.jl and PrettyTables.jl. There is definitely room for improvement there.

Opened an issue:

> <https://github.com/JuliaGPU/CUDA.jl/issues/2859>
>
> It is a heavy dependency, and I wonder if it could be replaced by built-in table… types (e.g., named tuples of vectors) provided by the language.

---

<div class="post-metadata">

**Author:** ![Ronis\_BR](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ronis_br/32/50999_2.png) [@Ronis\_BR](https://discourse.julialang.org/u/Ronis_BR)\
**Post date:** [August 27, 2025, 1:46pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/43 "2025-08-27T13:46:13Z")

</div>

> [@juliohm](#):
>
> [Any strong reason to have DataFrames.jl as a dependency? · Issue #2859 · JuliaGPU/CUDA.jl · GitHub](https://github.com/JuliaGPU/CUDA.jl/issues/2859)

The direct calls to PrettyTables.jl in CUDA.jl are here:

> <https://github.com/JuliaGPU/CUDA.jl/blob/6ca192d1b1f95bc97593593eaecc4e879ea1a198/src/profile.jl#L835>

It should be really simple to update! However, I cannot test since I have no nvidia gpu ☹

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [August 27, 2025, 1:47pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/44 "2025-08-27T13:47:06Z")

</div>

I believe their CI infrastructure covers it. We can submit a PR and wait for action.

---

<div class="post-metadata">

**Author:** ![Ronis\_BR](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ronis_br/32/50999_2.png) [@Ronis\_BR](https://discourse.julialang.org/u/Ronis_BR)\
**Post date:** [August 27, 2025, 1:47pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/45 "2025-08-27T13:47:48Z")

</div>

Awesome! Can you do this please while I am working in DataFrames.jl?

---

<div class="post-metadata">

**Author:** ![tchr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tchr/32/15138_2.png) [@tchr](https://discourse.julialang.org/u/tchr)\
**Post date:** [August 27, 2025, 1:49pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/46 "2025-08-27T13:49:33Z")

</div>

> [@Ronis\_BR](#):
>
> Thanks @tchr ! That would be great but, unfortunately, I will have no time to create such a document.

I don’t need any .pdf documents (I don’t quite understand the LLM suggestion from @karei here); just an indication of what has changed. The “everything might have changed” is quite daunting honestly. Or, if that’s easier: what has stayed the same?

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [August 27, 2025, 1:51pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/47 "2025-08-27T13:51:07Z")

</div>

@Ronis_BR we can only run CUDA.jl tests after DataFrames.jl is released with support to PrettyTables.jl v3. I can try to prepare the PR to CUDA.jl after your DataFrames.jl PR is ready 👍

---

<div class="post-metadata">

**Author:** ![Ronis\_BR](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ronis_br/32/50999_2.png) [@Ronis\_BR](https://discourse.julialang.org/u/Ronis_BR)\
**Post date:** [August 27, 2025, 1:55pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/48 "2025-08-27T13:55:00Z")

</div>

> [@tchr](#):
>
> I don’t need any .pdf documents (I don’t quite understand the LLM suggestion from @karei here); just an indication of what has changed. The “everything might have changed” is quite daunting honestly. Or, if that’s easier: what has stayed the same?

You probably can have all those answers here:

> **[Quick Start · Pretty Tables](https://ronisbr.github.io/PrettyTables.jl/stable/man/quick_start/)**
>
> Documentation for Pretty Tables.

---

<div class="post-metadata">

**Author:** ![Ronis\_BR](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ronis_br/32/50999_2.png) [@Ronis\_BR](https://discourse.julialang.org/u/Ronis_BR)\
**Post date:** [August 27, 2025, 4:44pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/49 "2025-08-27T16:44:08Z")

</div>

@juliohm The PR to migrate DataFrames.jl is already submitted:

> <https://github.com/JuliaData/DataFrames.jl/pull/3510>
>
> The PR updates the support in DataFrames.jl to PrettyTables.jl v3. I’ve also upd…ated the API call and the tests. As we can see from the tests, the output changes are minor. For the user, the printed version of DataFrames.jl should look exactly the same except in very edge cases.
> 
> @bkamins I reviewed the list of open display-related issues, and I can address some of them. However, this migration is currently blocking some internal workflows because we can’t use DataFrames with PrettyTables v3 simultaneously. Could we please merge this support, and then I’ll handle the remaining issues?

---

<div class="post-metadata">

**Author:** ![JoshuaLampert](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joshualampert/32/205964_2.png) [@JoshuaLampert](https://discourse.julialang.org/u/JoshuaLampert)\
**Post date:** [August 29, 2025, 10:23am UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/50 "2025-08-29T10:23:00Z")

</div>

Thanks for adding the additional flexibility with `first_line_column_label`. Unfortunately, this broke my code, which was working with PrettyTables.jl v3.0.0. I use the LaTeX backend and don’t want to have any style for the first line. In PrettyTables.jl v3.0.0 I just passed `LatexTableStyle(first_line_column_label=[])`, which did the job, but I think with v3.0.2 this doesn’t work anymore.

```julia
ERROR: MethodError: no method matching LatexTableStyle(::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…}, ::Vector{…})
The type `LatexTableStyle` exists, but no method is defined for this combination of argument types when trying to construct it.

```

How can I remove the default bold style for the first line with the latest version of PrettyTables.jl (in the LaTeX backend, but probably this is the same for the other backends)?  
Edit: I think I found out: `first_line_column_label=String[]` does it.

---

<div class="post-metadata">

**Author:** ![Ronis\_BR](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ronis_br/32/50999_2.png) [@Ronis\_BR](https://discourse.julialang.org/u/Ronis_BR)\
**Post date:** [August 29, 2025, 12:30pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/51 "2025-08-29T12:30:19Z")

</div>

> [@JoshuaLampert](#):
>
> Edit: I think I found out: `first_line_column_label=String[]` does it.

Yes! One significant change I made was to limit the number of types allowed within the structures. This modification resulted in a substantial performance boost. However, the “downside” is that we must ensure the correct types are provided, and `[]` is represented as `Vector{Any}`.

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [September 12, 2025, 2:24pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/52 "2025-09-12T14:24:26Z")

</div>

@Ronis_BR how to replace the old `crop=:none` option?

---

<div class="post-metadata">

**Author:** ![Ronis\_BR](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ronis_br/32/50999_2.png) [@Ronis\_BR](https://discourse.julialang.org/u/Ronis_BR)\
**Post date:** [September 12, 2025, 5:19pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/53 "2025-09-12T17:19:43Z")

</div>

Hi @juliohm

In this case, you should use `fit_table_in_display_horizontally = false, fit_table_in_display_vertically = false`.

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [September 13, 2025, 2:27am UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/54 "2025-09-13T02:27:32Z")

</div>

Thank you @Ronis_BR , one more package migrated to PrettyTables.jl v3 ✅

I am traveling without access to my workstation, so I can’t easily prepare a PR to CUDA.jl until September 15. Please feel free to step in if you have a quick fix.

---

<div class="post-metadata">

**Author:** ![alusiani](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alusiani/32/16415_2.png) [@alusiani](https://discourse.julialang.org/u/alusiani)\
**Post date:** [September 15, 2025, 3:06pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/55 "2025-09-15T15:06:21Z")

</div>

Thansk for your work! I found version 2 very well done and useful and I am sure that this update will be even better.

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [September 16, 2025, 4:53pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/56 "2025-09-16T16:53:07Z")

</div>

@Ronis_BR CUDA.jl requires non-trivial changes to update to PrettyTables.jl v3. Could you please give some hand over there?

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [September 18, 2025, 6:14pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/57 "2025-09-18T18:14:26Z")

</div>

Attempted a PR:

> <https://github.com/JuliaGPU/CUDA.jl/pull/2899>
>
> This is holding further updates in downstream ecosystems.
> 
> I removed the optio…n \`crop\` because it was replaced by \`fit\_table\_in\_display\_horizontally\` and \`fit\_table\_in\_display\_vertically\`. Please feel free to adjust accordingly.
> 
> cc: @ronisbr

---

<div class="post-metadata">

**Author:** ![Ronis\_BR](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ronis_br/32/50999_2.png) [@Ronis\_BR](https://discourse.julialang.org/u/Ronis_BR)\
**Post date:** [September 18, 2025, 11:40pm UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/58 "2025-09-18T23:40:05Z")

</div>

Hi @juliohm !

I do not have access to any computer with a Nvidia video card to test ☹ Any idea how can I test the modifications?

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [September 19, 2025, 2:08am UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/59 "2025-09-19T02:08:17Z")

</div>

I have a NVIDIA GPU on my workstation, but the CUDA.jl tests crash for me in the master branch. Julia is killed to avoid memory shortage.

I also have no idea how the CUDA profiler should be tested.

cc: @maleadt

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [September 19, 2025, 6:56am UTC](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821/60 "2025-09-19T06:56:55Z")

</div>

> [@juliohm](#):
>
> the [CUDA.jl](https://juliaregistries.github.io/General/packages/redirect_to_repo/CUDA) tests crash

Did you try:

```julia-auto
using Pkg
Pkg.test("CUDA",test_args=`--jobs=2`)

```

?  
The default number of jobs might be too high for the memory you have.

[Previous page](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821.md?page=2)

[Next page](https://discourse.julialang.org/t/ann-prettytables-v3-0-0/131821.md?page=4)
