Skip to main content

ez

PyPI Version Python Versions License: GPLv3+

A cross-platform Python utility library for easy shell interaction and common programming tasks on Linux, macOS, and Windows.


Installation

pip install ez

Requires Python 3.11+.


Quick Start

from ez import *

# File operations
files = ls('~/Documents', r'\.py$')
cp('source.txt', '~/backup/')
mv('old_name.txt', 'new_name.txt')
rm('temp/')

# Path utilities
print(cwd())                            # current working directory
print(jp('~', 'Documents', 'file'))     # join path components
print(sp('/path/to/file.txt'))          # => ['/path/to', 'file', '.txt']

# Execute shell commands
execute('ls -la')
output = execute2('echo hello')
esp('echo %s', 'world')

# Read/write spreadsheets
data = readx('data.xlsx')
savex('output.xlsx', data, header=['Name', 'Age'])

Features

File & Directory Operations

Function Description
ls([path[, regex]], full=True, dotfile=False) List files in a directory, filtered by regex.
lsd([path[, regex]], full=False, dotfolder=False) List subdirectories.
fls([path[, regex]]) Recursively list all files (walks subdirectories). Regex matches filename only, case-sensitive.
mkdir(path) Create a directory and any missing parents (like mkdir -p).
cp(src, dst) Copy file(s) or a folder; supports wildcards and vectorization.
mv(src, dst) Move file(s) or a folder; supports wildcards and vectorization.
rm(path) Delete a file or folder; supports wildcards and vectorization.
rn(old, new) Rename a file or directory.
exists(path) Check whether a path exists (returns 0 or 1).
tree([path, sum=True, save=None, sort=True, case=True]) Print a directory tree. sum=True shows only folders; sum=False includes files.

Path Utilities

Function Description
fullpath(path) / fp(path) Resolve the full absolute path (expands ~, ..).
pwd() / cwd() Return the current working directory.
csd() Return the directory of the currently running script.
csf() Return the current script filename without its extension.
parentdir(path) / pr(path) Return the parent directory of a path.
joinpath(*parts) / jp(*parts) Join path components; supports vectorization.
splitpath(path) / sp(path) Split a path into [directory, filename, extension]; supports vectorization.
cd(path) Change the current working directory.
stepfolder(n) Navigate up or down the directory hierarchy by n levels.

String Utilities

Function Description
trim(string, how[, chars]) Strip whitespace or specific characters.
quote(string) Wrap a string in quotes.
join(sep, *strings) / join(sep, array) Concatenate strings with a separator; supports vectorization.
sort(array) Sort a list.
replace(lst, item, replacement) Replace an element in a list.
remove(lst, item) Remove an element from a list.

Shell Execution

Function Description
execute(cmd) Run a shell command without capturing output (subprocess.call).
execute1(cmd) Run a shell command and discard its output.
execute2(cmd) Run a shell command and return the captured output (subprocess.Popen).
sprintf(fmt, *args, **kwargs) Format a string (like C's sprintf).
esp(fmt, ...) / esp1(...) / esp2(...) Execute a sprintf-formatted shell command.
espR(fmt, ...) / espR1(...) / espR2(...) Execute sprintf-formatted R code.
evaluate(exp) Evaluate and execute a shell expression.

Spreadsheet & Data I/O

Function Description
readx(path, sheet=0, r=[1,], c=None) Read a .xlsx, .xls, or .csv file into a list.
savex(path, data, header=None, delimiter=",", sheet_name='Sheet1') Write a list of lists to a .xlsx, .xls, or .csv file.

Documents to Markdown

import ez

markdown = ez.pptx2md('talk.pptx')  # prints to stdout and returns the Markdown
markdown = ez.pptx2md(
    'talk.pptx', note=True, slides='1-3,5', markers=False,
    images=True, output='talk.md', overwrite=True,
)

All four converters return the Markdown string and print it when output=None. With output='file.md', they write UTF-8 instead of printing. Existing output files raise FileExistsError unless overwrite=True; replacing the input document is always rejected, including symlink/hard-link aliases.

PowerPoint

Argument (default) CLI flag Effect
note=False -n, --note Include speaker notes.
slides=None -s, --slides Select 1-based slides, e.g. 1-3,5; default is all slides.
markers=True --no-markers Remove <!-- Slide number: N --> comments and separate slides with ---.
images=False --images Embed images as base64 data URIs instead of filename references.
output=None -o, --output Write UTF-8 Markdown to a file instead of stdout.
overwrite=False -f, --force Allow replacing an existing output file.

Selections retain presentation order, ignore duplicates, and preserve original slide numbers. Invalid or out-of-range selections raise ValueError. Existing output files raise FileExistsError unless overwriting is enabled. The input presentation is never overwritten. Filename image references do not extract image files; use images=True for self-contained Markdown.

pptx2md talk.pptx -n -s 1-3,5 --images -o talk.md
pptx2md --help

Word

markdown = ez.docx2md('report.docx', images=True, output='report.md')

images=False is the default. Use --images to preserve complete base64 image URIs; otherwise MarkItDown abbreviates them into unusable image references. Supported headings, lists, tables, and links are converted, not exact page layout.

docx2md report.docx --images -o report.md

Excel

markdown = ez.xlsx2md(
    'data.xlsx', sheets=['Annual Sales', 'Summary'], formulas=False,
    headers=True, output='data.md',
)
Argument (default) CLI flag Effect
sheets=None -s, --sheets NAME [NAME ...] Select exact worksheet names; default is all worksheets, including hidden ones.
formulas=False --formulas Emit formula strings instead of cached values.
headers=True --no-headers Generate column-letter headers and include the first row as data.

Selections retain workbook order and ignore duplicates; unknown names raise ValueError. Each worksheet has a heading and a Markdown table; empty worksheets have only a heading. Trailing empty rows/columns are omitted. Images, charts, styles, and macros are not extracted; merged cells are not expanded.

Formulas are not evaluated. Missing cached formula values produce a warning and empty cells. Calculate and save the workbook in Excel/LibreOffice first, or use formulas=True to emit the formulas themselves.

xlsx2md data.xlsx --sheets "Annual Sales" Summary -o data.md
xlsx2md data.xlsx --formulas --no-headers

PDF

markdown = ez.pdf2md('paper.pdf', pages='1-3,5', markers=False, output='paper.md')
Argument (default) CLI flag Effect
pages=None -p, --pages Select 1-based page ranges; default is all pages.
markers=True --no-markers Remove <!-- Page number: N --> comments and separate pages with ---.

Selections retain document order and original page numbers. This is text-based extraction, not OCR: scanned/blank pages can have no text. Images are not extracted; exact layout/table reconstruction is not guaranteed. Decrypt PDFs requiring a password before conversion.

pdf2md paper.pdf -p 1-3,5 -o paper.md

Installed commands and future CLI tools

Install this version of the package to generate all four commands:

python -m pip install .
# Or, for local development:
python -m pip install -e .

Activate the Python environment containing ez, or put its executable directory on PATH. All commands support -o/--output, -f/--force, and -h/--help. Running any converter command without arguments shows help and exits successfully. Importing or directly running ez/ez.py does not launch a converter CLI.

_CLI_COMMANDS in ez/ez.py is the single registry of exported tools. To expose another tool, add its function and a registry entry with function, description, arguments, notes, and examples; optional groups reuse argument groups. Each argument is a pair of flag/name strings and an argparse-options dictionary. Use the strings "str", "int", or "float" for typed arguments. Unspecified options are omitted from the function call, preserving the function's defaults. Command names may differ from function names; registered targets must accept the parsed arguments as keywords. The dispatcher ignores normal return values and exits successfully after a successful call.

setup.py reads the literal registry without importing runtime dependencies and generates console entry points targeting the general _cli dispatcher. Reinstall the package after adding a command. No new wrapper files or shell functions are needed. Converter dependencies (MarkItDown, openpyxl, PyMuPDF, and python-pptx) are already declared in the package.

Regular Expressions

Function Description
regexp(string, pattern) Return [starts, ends] match positions; also accepts method='split' or method='match'.
regexpi(string, pattern) Case-insensitive variant of regexp.
regexprep(string, pattern, replace, count=0) Replace pattern matches in a string.
regexprepi(string, pattern, replace, count=0) Case-insensitive variant of regexprep.

Utility & Debugging

Function Description
debug(1/0) Toggle simulation mode. 1 simulates cp, mv, and execute (prints without running); 0 executes for real.
error(msg) Raise an error with a message.
pprint(text, color='green') Color-coded console print.
ppprint(obj) Pretty-print arbitrary Python data structures.
beep() Emit a system beep.
which(name) Locate a module, or show which Python interpreter is active (e.g., which('python')).
help(name) / doc(name) Print a module, class, or function docstring.
ver(pkg) / version(pkg) Check a package's installed version (pkg can be 'python').
whos([name]) List imported functions and packages.
with nooutput(): Context manager that suppresses stdout within the block.

Logging

Function Description
logon(file="log.txt", mode='a', status=True, timestamp=True) Begin logging stdout to a file.
logoff() Stop logging.

Randomization

Function Description
Randomize(x) / randomize(x) Seed the random number generator.
RandomizeArray(lst) / randomizearray(lst) Shuffle a list in place.
Random(a, b) / random(a, b) Return a random integer N such that a ≤ N ≤ b.
RandomChoice(seq) / randomchoice(seq) Return a random element from a sequence.
Permute(iterable) / permute(iterable) Return all permutations as a list.

Set Operations

All set operations preserve the original order of elements.

Function Description
unique(seq) Remove duplicates. unique('abracadaba') → ['a', 'b', 'r', 'c', 'd']
union(seq1, seq2) Set union.
intersect(seq1, seq2) Set intersection.
setdiff(seq1, seq2) Elements in seq1 not in seq2. Note: setdiff(a, b) ≠ setdiff(b, a) in general.
duplicate(seq) Return only elements that appear more than once. duplicate([1,5,2,3,2,1,5,6,5]) → [2, 1, 5]

Clipboard

Function Description
SetClip(content) / setclip(content) Write content to the system clipboard.
GetClip() / getclip() Read content from the system clipboard.

Miscellaneous

Function Description
num(string) Convert a string to a number.
isempty(s) Check if a value is empty.
iff(expr, result1, result2) / ifelse(...) Inline conditional (ternary) expression.
clear(module, recursive=False) Reload a module.
lines(path='.', pattern='\.py$', recursive=True) Count lines of code (including empty lines) matching a file pattern.
keygen(length=8, complexity=3) Generate a random key string.
hashes(filename) Calculate and print a file's MD5 and SHA1 hashes; memory-efficient for large files.
encoding_detect(path) Detect the character encoding of a file.
encoding_convert(path) Convert a file's encoding.
JDict() A custom ordered dictionary with convenient attribute access and helper methods. Use help(JDict) for details.
Moment(timezone) Return the current datetime in a specified timezone, or a local naive datetime if omitted.

Pipe

Chain operations using a pipe-style syntax:

# Basic pipe
[1, 2, 3, 0] > ez.pipe | len | str

# Countdown example
ez.pipe | (range, -1) | reversed | ez.pipetools.foreach('{0}...') | ' '.join | '{0} boom'

General Notes

  • Almost all path-related commands support ~, .., ., ?, and *. The exceptions are ls and fls, which use regular expressions for filtering.
  • File operations target symbolic links themselves, not the underlying files they point to.

License

GNU General Public License v3 or later (GPLv3+)

Metadata

Release files for ez 11.7.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ez 11.7.2
File Size Uploaded
ez-11.7.2.tar.gz 92.4 kB Details

Release files / ez-11.7.2.tar.gz

Download URL ez-11.7.2.tar.gz
Size 92.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a870371a892a798dd5a40263acd7ff57bffd47eb656991463afaa32f52b8fba1
BLAKE2b-256 checksum
How to use checksums
6832ff3af0637ce86563e787212df440fb4a00f847b29a2e4c4e672500b5efa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release history Release notifications | RSS feed

11.7.4

1 release file

11.7.3

1 release file

This release

11.7.2 This release

1 release file

11.7.1

1 release file

11.7.0

1 release file

11.6.9

1 release file

11.6.8

1 release file

11.6.7

1 release file

11.6.6

1 release file

11.6.5

1 release file

11.6.4

1 release file

11.6.3

1 release file

11.6.2

1 release file

11.6.1

1 release file

11.6.0

1 release file

11.5.9

1 release file

11.5.8

1 release file

11.5.7

1 release file

11.5.6

1 release file

11.5.5

1 release file

11.5.4

1 release file

11.5.3

1 release file

11.5.2

1 release file

11.5.1

1 release file

11.5.0

1 release file

11.4.9

1 release file

11.4.8

1 release file

11.4.7

1 release file

11.4.6

1 release file

11.4.5

1 release file

11.4.4

1 release file

11.4.3

1 release file

11.4.2

1 release file

11.4.1

1 release file

11.4.0

1 release file

11.3.9

1 release file

11.3.8

1 release file

11.3.7

1 release file

11.3.6

1 release file

11.3.5

1 release file

11.3.4

1 release file

11.3.3

1 release file

11.3.2

1 release file

11.3.1

1 release file

11.3.0

1 release file

11.2.9

1 release file

11.2.8

1 release file

11.2.7

1 release file

11.2.5

1 release file

11.2.4

1 release file

11.2.3

1 release file

11.2.2

1 release file

11.2.1

1 release file

11.2.0

1 release file

11.1.9

1 release file

11.1.8

1 release file

11.1.7

1 release file

11.1.6

1 release file

11.1.5

1 release file

11.1.4

1 release file

11.1.3

1 release file

11.1.2

1 release file

11.1.1

1 release file

11.1.0

1 release file

11.0.9

1 release file

11.0.8

1 release file

11.0.7

1 release file

11.0.6

1 release file

11.0.5

1 release file

11.0.4

1 release file

11.0.3

1 release file

11.0.2

1 release file

11.0.1

1 release file

11.0.0

1 release file

10.9.9

1 release file

10.9.8

1 release file

10.9.7

1 release file

10.9.6

1 release file

10.9.5

1 release file

10.9.4

1 release file

10.9.3

1 release file

10.9.2

1 release file

10.9.1

1 release file

10.9.0

1 release file

10.8.9

1 release file

10.8.8

1 release file

10.8.7

1 release file

10.8.6

1 release file

10.8.5

1 release file

10.8.4

1 release file

10.8.3

1 release file

10.8.2

1 release file

10.8.1

1 release file

10.8.0

1 release file

10.7.9

1 release file

10.7.8

1 release file

10.7.7

1 release file

10.7.6

1 release file

10.7.5

1 release file

10.7.4

1 release file

10.7.3

1 release file

10.7.2

1 release file

10.7.1

1 release file

10.7.0

1 release file

10.6.9

1 release file

10.6.8

1 release file

10.6.7

1 release file

10.6.6

1 release file

10.6.5

1 release file

10.6.4

1 release file

10.6.1

1 release file

10.6.0

1 release file

10.5.9

1 release file

10.5.8

1 release file

10.5.7

1 release file

10.5.6

1 release file

10.5.5

1 release file

10.5.4

1 release file

10.5.3

1 release file

10.5.2

1 release file

10.5.1

1 release file

10.5.0

1 release file

10.4.9

1 release file

10.4.8

1 release file

10.4.7

1 release file

10.4.6

1 release file

10.4.5

1 release file

10.4.4

1 release file

10.4.3

1 release file

10.4.2

1 release file

10.4.1

1 release file

10.4.0

1 release file

10.3.9

1 release file

10.3.8

1 release file

10.3.7

1 release file

10.3.6

1 release file

10.3.5

1 release file

10.3.4

1 release file

10.3.3

1 release file

10.3.2

1 release file

10.3.1

1 release file

10.3.0

1 release file

10.2.9

1 release file

10.2.8

1 release file

10.2.5

1 release file

10.2.4

1 release file

10.2.3

1 release file

10.2.2

1 release file

10.2.1

1 release file

10.2.0

1 release file

10.1.9

1 release file

10.1.8

1 release file

10.1.7

1 release file

10.1.6

1 release file

10.1.5

1 release file

10.1.4

1 release file

10.1.3

1 release file

10.1.2

1 release file

10.1.1

1 release file

10.1.0

1 release file

10.0.9

1 release file

10.0.8

1 release file

10.0.7

1 release file

10.0.6

1 release file

10.0.5

1 release file

10.0.4

1 release file

10.0.3

1 release file

9.9.9

1 release file

9.9.8

1 release file

9.9.7

1 release file

9.9.6

1 release file

9.9.5

1 release file

9.9.4

1 release file

9.9.3

1 release file

9.9.2

1 release file

9.9.1

1 release file

9.9.0

1 release file

9.8.9

1 release file

9.8.8

1 release file

9.8.7

1 release file

9.8.6

1 release file

9.8.5

1 release file

9.8.4

1 release file

9.8.3

1 release file

9.8.2

1 release file

9.8.1

1 release file

9.8.0

1 release file

9.7.9

1 release file

9.7.8

1 release file

9.7.7

1 release file

9.7.6

1 release file

9.7.5

1 release file

9.7.4

1 release file

9.7.3

1 release file

9.7.2

1 release file

9.7.1

1 release file

9.7.0

1 release file

9.6.9

1 release file

9.6.8

1 release file

9.6.7

1 release file

9.6.6

1 release file

9.6.5

1 release file

9.6.4

1 release file

9.6.3

1 release file

9.6.2

1 release file

9.6.1

1 release file

9.6.0

1 release file

9.5.9

1 release file

9.5.8

1 release file

9.5.7

1 release file

9.5.6

1 release file

9.5.5

1 release file

9.5.4

1 release file

9.5.3

1 release file

9.5.2

1 release file

9.5.1

1 release file

9.5.0

1 release file

9.4.9

1 release file

9.4.8

1 release file

9.4.7

1 release file

9.4.6

1 release file

9.4.5

1 release file

9.4.4

1 release file

9.4.3

1 release file

9.4.2

1 release file

9.4.1

1 release file

9.4.0

1 release file

9.3.9

1 release file

9.3.8

1 release file

9.3.7

1 release file

9.3.6

1 release file

9.3.5

1 release file

9.3.4

1 release file

9.3.3

1 release file

9.3.2

1 release file

9.3.1

1 release file

9.3.0

1 release file

9.2.9

1 release file

9.2.8

1 release file

9.2.7

1 release file

9.2.6

1 release file

9.2.5

1 release file

9.2.4

1 release file

9.2.3

1 release file

9.2.2

1 release file

9.2.1

1 release file

9.2.0

1 release file

9.1.9

1 release file

9.1.8

1 release file

9.1.7

1 release file

9.1.6

1 release file

9.1.5

1 release file

9.1.4

1 release file

9.1.3

1 release file

9.1.2

1 release file

9.1.1

1 release file

9.1.0

1 release file

9.0.6

1 release file

9.0.5

1 release file

9.0.4

1 release file

9.0.3

1 release file

9.0.2

1 release file

9.0.1

1 release file

9.0.0

1 release file

8.9.9

1 release file

8.9.8

1 release file

8.9.7

1 release file

8.9.6

1 release file

8.9.5

1 release file

8.9.4

1 release file

8.9.3

1 release file

8.9.2

1 release file

8.9.1

1 release file

8.9.0

1 release file

8.8.9

1 release file

8.8.8

1 release file

8.8.7

1 release file

8.8.6

1 release file

8.8.5

1 release file

8.8.4

1 release file

8.8.3

1 release file

8.8.2

1 release file

8.8.1

1 release file

8.8.0

1 release file

8.7.9

1 release file

8.7.8

1 release file

8.7.7

1 release file

8.7.6

1 release file

8.7.5

1 release file

8.7.4

1 release file

8.7.3

1 release file

8.7.2

1 release file

8.7.1

1 release file

8.7.0

1 release file

8.6.9

1 release file

8.6.8

1 release file

8.6.7

1 release file

8.6.6

1 release file

8.6.5

1 release file

8.6.4

1 release file

8.6.3

1 release file

8.6.2

1 release file

8.6.1

1 release file

8.6.0

1 release file

8.5.9

1 release file

8.5.8

1 release file

8.5.7

1 release file

8.5.6

1 release file

8.5.5

1 release file

8.5.4

1 release file

8.5.3

1 release file

8.5.2

1 release file

8.5.1

1 release file

8.5.0

1 release file

8.4.9

1 release file

8.4.8

1 release file

8.4.7

1 release file

8.4.6

1 release file

8.4.5

1 release file

8.4.4

1 release file

8.4.3

1 release file

8.4.2

1 release file

8.4.1

1 release file

8.4.0

1 release file

8.3.9

1 release file

8.3.8

1 release file

8.3.7

1 release file

8.3.6

1 release file

8.3.5

1 release file

8.3.4

1 release file

8.3.3

1 release file

8.3.2

1 release file

8.3.1

1 release file

8.3.0

1 release file

8.2.9

1 release file

8.2.8

1 release file

8.2.7

1 release file

8.2.6

1 release file

8.2.5

1 release file

8.2.4

1 release file

8.2.3

1 release file

8.2.2

1 release file

8.2.1

1 release file

8.2.0

1 release file

8.1.9

1 release file

8.1.8

1 release file

8.1.7

1 release file

8.1.6

1 release file

8.1.5

1 release file

8.1.4

1 release file

8.1.3

1 release file

8.1.2

1 release file

8.1.1

1 release file

8.1.0

1 release file

8.0.9

1 release file

8.0.8

1 release file

8.0.7

1 release file

8.0.6

1 release file

8.0.5

1 release file

8.0.4

1 release file

8.0.3

1 release file

8.0.2

1 release file

8.0.1

1 release file

8.0.0

1 release file

7.9.9

1 release file

7.9.8

1 release file

7.9.7

1 release file

7.9.6

1 release file

7.9.5

1 release file

7.9.4

1 release file

7.9.3

1 release file

7.9.2

1 release file

7.9.1

1 release file

7.9.0

1 release file

7.8.9

1 release file

7.8.8

1 release file

7.8.7

1 release file

7.8.6

1 release file

7.8.5

1 release file

7.8.4

1 release file

7.8.3

1 release file

7.8.2

1 release file

7.8.1

1 release file

7.8.0

1 release file

7.7.9

1 release file

7.7.8

1 release file

7.7.7

1 release file

7.7.6

1 release file

7.7.5

1 release file

7.7.4

1 release file

7.7.3

1 release file

7.7.2

1 release file

7.7.1

1 release file

7.7.0

1 release file

7.6.9

1 release file

7.6.8

1 release file

7.6.7

1 release file

7.6.6

1 release file

7.6.5

1 release file

7.6.4

1 release file

7.6.3

1 release file

7.6.2

1 release file

7.6.1

1 release file

7.6.0

1 release file

7.5.9

1 release file

7.5.8

1 release file

7.5.7

1 release file

7.5.6

1 release file

7.5.5

1 release file

7.5.4

1 release file

7.5.3

1 release file

7.5.2

1 release file

7.5.1

1 release file

7.5.0

1 release file

7.4.9

1 release file

7.4.8

1 release file

7.4.7

1 release file

7.4.6

1 release file

7.4.5

1 release file

7.4.4

1 release file

7.4.3

1 release file

7.4.2

1 release file

7.4.1

1 release file

7.4.0

1 release file

7.3.9

1 release file

7.3.8

1 release file

7.3.7

1 release file

7.3.6

1 release file

7.3.5

1 release file

7.3.4

1 release file

7.3.3

1 release file

7.3.2

1 release file

7.3.1

1 release file

7.3.0

1 release file

7.2.9

1 release file

7.2.8

1 release file

7.2.7

1 release file

7.2.6

1 release file

7.2.5

1 release file

7.2.4

1 release file

7.2.3

1 release file

7.2.2

1 release file

7.2.1

1 release file

7.2.0

1 release file

7.1.9

1 release file

7.1.8

1 release file

7.1.7

1 release file

7.1.6

1 release file

7.1.5

1 release file

7.1.4

1 release file

7.1.3

1 release file

7.1.2

1 release file

7.1.1

1 release file

7.1.0

1 release file

7.0.9

1 release file

7.0.8

1 release file

7.0.7

1 release file

7.0.6

1 release file

7.0.5

1 release file

7.0.4

1 release file

7.0.3

1 release file

7.0.2

1 release file

7.0.1

1 release file

7.0.0

1 release file

6.9.9

1 release file

6.9.8

1 release file

6.9.7

1 release file

6.9.6

1 release file

6.9.5

1 release file

6.9.4

1 release file

6.9.3

1 release file

6.9.2

1 release file

6.9.1

1 release file

6.9.0

1 release file

6.8.9

1 release file

6.8.8

1 release file

6.8.7

1 release file

6.8.6

1 release file

6.8.5

1 release file

6.8.4

1 release file

6.8.3

1 release file

6.8.2

1 release file

6.8.1

1 release file

6.8.0

1 release file

6.7.9

1 release file

6.7.8

1 release file

6.7.7

1 release file

6.7.6

1 release file

6.7.5

1 release file

6.7.4

1 release file

6.7.1

1 release file

6.7.0

1 release file

6.6.9

1 release file

6.6.8

1 release file

6.6.7

1 release file

6.6.6

1 release file

6.0.0

1 release file

5.9.9

1 release file

4.5.7

1 release file

4.5.6

1 release file

4.5.5

1 release file

4.5.4

1 release file

4.4.6

1 release file

4.4.5

1 release file

4.4.4

1 release file

4.4.3

1 release file

4.4.2

1 release file

4.4.1

1 release file

4.4.0

1 release file

4.3.9

1 release file

4.3.8

1 release file

4.3.7

1 release file

4.3.6

1 release file

4.3.5

1 release file

4.3.4

1 release file

4.3.3

1 release file

4.3.2

1 release file

4.3.1

1 release file

4.3.0

1 release file

4.2.9

1 release file

4.2.8

1 release file

4.2.7

1 release file

4.2.6

1 release file

4.2.5

1 release file

4.2.4

1 release file

4.2.3

1 release file

4.2.2

1 release file

4.2.1

1 release file

4.2.0

1 release file

4.1.9

1 release file

4.1.8

1 release file

4.1.7

1 release file

4.1.6

1 release file

4.1.5

1 release file

4.1.4

1 release file

4.1.3

1 release file

4.1.2

1 release file

4.1.1

1 release file

4.1.0

1 release file

4.0.9

1 release file

4.0.8

1 release file

4.0.7

1 release file

4.0.6

1 release file

4.0.5

1 release file

4.0.4

1 release file

4.0.3

1 release file

4.0.2

1 release file

4.0.1

1 release file

4.0.0

1 release file

3.9.9

1 release file

3.9.8

1 release file

3.9.7

1 release file

3.9.6

1 release file

3.9.5

1 release file

3.9.4

1 release file

3.9.3

1 release file

3.9.2

1 release file

3.9.0

1 release file

3.8.9

1 release file

3.8.8

1 release file

3.8.7

1 release file

3.8.6

1 release file

3.8.5

1 release file

3.8.4

1 release file

3.8.3

1 release file

3.8.2

1 release file

3.8.1

1 release file

3.8.0

1 release file

3.7.9

1 release file

3.7.8

1 release file

3.7.7

1 release file

3.7.6

1 release file

3.7.5

1 release file

3.7.4

1 release file

3.7.3

1 release file

3.7.2

1 release file

3.7.1

1 release file

3.7.0

1 release file

3.6.9

1 release file

3.6.8

1 release file

3.6.7

1 release file

3.6.6

1 release file

3.6.5

1 release file

3.6.4

1 release file

3.6.2

1 release file

3.6.1

1 release file

3.6.0

1 release file

3.5.9

1 release file

3.5.8

1 release file

3.5.7

1 release file

3.5.6

1 release file

3.5.5

1 release file

3.5.4

1 release file

3.5.3

1 release file

3.5.2

1 release file

3.5.1

1 release file

3.5.0

1 release file

3.4.9

1 release file

3.4.8

1 release file

3.4.7

1 release file

3.4.6

1 release file

3.4.5

1 release file

3.4.4

1 release file

3.4.3

1 release file

3.4.2

1 release file

3.4.1

1 release file

3.4.0

1 release file

3.3.9

1 release file

3.3.8

1 release file

3.3.7

1 release file

3.3.6

1 release file

3.3.5

1 release file

3.3.4

1 release file

3.3.3

1 release file

3.3.2

1 release file

3.3.1

1 release file

3.3.0

1 release file

3.2.9

1 release file

3.2.8

1 release file

3.2.7

1 release file

3.2.6

1 release file

3.2.5

1 release file

3.2.4

1 release file

3.2.3

1 release file

3.2.2

1 release file

3.2.1

1 release file

3.2.0

1 release file

3.1.9

1 release file

3.1.8

1 release file

3.1.7

1 release file

3.1.6

1 release file

3.1.5

1 release file

3.1.4

1 release file

3.1.3

1 release file

3.1.2

1 release file

3.1.1

1 release file

3.1.0

1 release file

3.0.9

1 release file

3.0.8

1 release file

3.0.7

1 release file

3.0.6

1 release file

3.0.5

1 release file

3.0.4

1 release file

3.0.3

1 release file

3.0.2

1 release file

3.0.1

1 release file

3.0.0

1 release file

2.9.9

1 release file

2.9.8

1 release file

2.9.7

1 release file

2.9.6

1 release file

2.9.5

1 release file

2.9.4

1 release file

2.9.3

1 release file

2.9.2

1 release file

2.9.1

1 release file

2.9.0

1 release file

2.8.9

1 release file

2.8.8

1 release file

2.8.7

1 release file

2.8.6

1 release file

2.8.5

1 release file

2.8.4

1 release file

2.8.3

1 release file

2.8.2

1 release file

2.8.1

1 release file

2.8.0

1 release file

2.7.9

1 release file

2.7.8

1 release file

2.7.7

1 release file

2.7.6

1 release file

2.7.5

1 release file

2.7.4

1 release file

2.7.3

1 release file

2.7.2

1 release file

2.7.1

1 release file

2.7.0

1 release file

2.6.9

1 release file

2.6.8

1 release file

2.6.7

1 release file

2.6.6

1 release file

2.6.5

1 release file

2.6.4

1 release file

2.6.3

1 release file

2.6.2

1 release file

2.6.1

1 release file

2.6.0

1 release file

2.5.9

1 release file

2.5.8

1 release file

2.5.7

1 release file

2.5.6

1 release file

2.5.5

1 release file

2.5.4

1 release file

2.5.3

1 release file

2.5.2

1 release file

2.5.1

1 release file

2.5.0

1 release file

2.4.9

1 release file

2.4.8

1 release file

2.4.7

1 release file

2.4.6

1 release file

2.4.5

1 release file

2.4.4

1 release file

2.4.3

1 release file

2.4.2

1 release file

2.4.1

1 release file

2.4.0

1 release file

2.3.9

1 release file

2.3.8

1 release file

2.3.7

1 release file

2.3.6

1 release file

2.3.5

1 release file

2.3.3

1 release file

2.3.2

1 release file

2.3.1

1 release file

2.3.0

1 release file

2.2.9

1 release file

2.2.8

1 release file

2.2.7

1 release file

2.2.6

1 release file

2.2.5

1 release file

2.2.4

1 release file

2.2.3

1 release file

2.2.2

1 release file

2.2.1

1 release file

2.2.0

1 release file

2.1.9

1 release file

2.1.7

1 release file

2.1.6

1 release file

2.1.5

1 release file

2.1.4

1 release file

2.1.2

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.9

1 release file

2.0.8

1 release file

2.0.7

1 release file

2.0.6

1 release file

2.0.5

1 release file

2.0.4

1 release file

2.0.3

1 release file

2.0.2

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.9.9

1 release file

1.9.8

1 release file

1.9.7

1 release file

1.9.6

1 release file

1.9.5

1 release file

1.9.3

1 release file

1.9.2

1 release file

1.9.1

1 release file

1.9.0

1 release file

1.8.9

1 release file

1.8.8

1 release file

1.8.7

1 release file

1.8.6

1 release file

1.8.5

1 release file

1.8.4

1 release file

1.8.3

1 release file

1.8.2

1 release file

1.8.1

1 release file

1.8.0

1 release file

1.7.9

1 release file

1.7.8

1 release file

1.7.7

1 release file

1.7.6

1 release file

1.7.5

1 release file

1.7.4

1 release file

1.7.3

1 release file

1.7.2

1 release file

1.7.1

1 release file

1.7.0

1 release file

1.6.9

1 release file

1.6.8

1 release file

1.6.7

1 release file

1.6.6

1 release file

1.6.5

1 release file

1.6.4

1 release file

1.6.3

1 release file

1.6.2

1 release file

1.6.0

1 release file

1.5.9

1 release file

1.5.8

1 release file

1.5.7

1 release file

1.5.6

1 release file

1.5.5

1 release file

1.5.4

1 release file

1.5.3

1 release file

1.5.2

1 release file

1.5.1

1 release file

1.5.0

1 release file

1.4.9

1 release file

1.4.8

1 release file

1.4.7

1 release file

1.4.6

1 release file

1.4.5

1 release file

1.4.4

1 release file

1.4.3

1 release file

1.4.2

1 release file

1.4.1

1 release file

1.4.0

1 release file

1.3.9

1 release file

1.3.8

1 release file

1.3.7

1 release file

1.3.6

1 release file

1.3.5

1 release file

1.3.4

1 release file

1.3.3

1 release file

1.3.0

1 release file

1.2.9

1 release file

1.2.8

1 release file

1.2.7

1 release file

1.2.6

1 release file

1.2.5

1 release file

1.2.4

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.9

1 release file

1.1.8

1 release file

1.1.7

1 release file

1.1.6

1 release file

1.1.5

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.0.4

1 release file

1.0.0.3

1 release file

1.0.0.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page