Skip to main content

ps-python-docx

ps-python-docx is John Paul Ellis's fork of python-docx, a Python library for reading, creating, and updating Microsoft Word 2007+ (.docx) files. It is published independently and is not an official upstream release.

This fork starts from upstream 1.2.0. The packaging setup preserves the upstream API and the docx import name. Version 1.3.0 adds public theme font and style inheritance APIs. See the theme API documentation. The original MIT license and upstream attribution are preserved.

Version 1.3.1 adds public external hyperlink authoring with Paragraph.add_hyperlink(), formatted label runs with Hyperlink.add_run(), and read/write tooltip support. See the text API documentation.

Version 1.3.2 adds InlineShape.description and InlineShape.title for reading and writing image alternative text. See the image metadata documentation.

Version 1.3.3 adds independent list instances, starts and restarts, template levels, and unnumbered continuation paragraphs. See the list documentation.

Version 1.3.4 adds bookmark creation and lookup with Document.bookmarks, plus internal hyperlinks with Paragraph.add_hyperlink(anchor=...). See the bookmark documentation.

Version 1.3.5 adds native footnote authoring and lookup with Document.add_footnote(), Document.footnotes, and Run.footnote_ids. See the footnote documentation.

Version 1.3.6 adds configurable repeating table header rows with row.repeat_as_header. See the table documentation.

Version 1.3.7 instantiates DOCX documents from macro-free DOTX templates through Document(). It builds on coderamaster's upstream proposal, adding output conversion and preservation tests. See the document documentation.

Installation

pip install ps-python-docx

Example

>>> from docx import Document

>>> document = Document()
>>> document.add_paragraph("It was a dark and stormy night.")
<docx.text.paragraph.Paragraph object at 0x10f19e760>
>>> document.save("dark-and-stormy.docx")

>>> document = Document("dark-and-stormy.docx")
>>> document.paragraphs[0].text
'It was a dark and stormy night.'

Install this distribution in place of python-docx. Both provide the docx package and should not be installed in the same environment.

More information about the inherited API is available in the upstream documentation. Report fork-specific issues in this repository.

Development and releases

Run the unit and acceptance suites without installing the legacy documentation dependencies:

uv sync --locked --no-dev --group test
uv run --locked --no-dev --group test pytest -q
uv run --locked --no-dev --group test behave --format progress --stop --tags=-wip

See RELEASING.md for the GitHub-to-PyPI release process.

Release files for ps-python-docx 1.3.7

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

Source distribution (sdist)

Source distribution for ps-python-docx 1.3.7
File Size Uploaded
ps_python_docx-1.3.7.tar.gz 5.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ps-python-docx 1.3.7
File Interpreter ABI Platform
ps_python_docx-1.3.7-py3-none-any.whl Python 3 none any Details

Total release size: 6.1 MB

Release files / ps_python_docx-1.3.7.tar.gz

Download URL ps_python_docx-1.3.7.tar.gz
Size 5.8 MB
Tags Source
SHA-256 checksum
How to use checksums
8588c65572261141dfb428c6f13782a410bbf62c93a3a43d398fc2a61fe32dac
BLAKE2b-256 checksum
How to use checksums
41d0261f63bc0a54c159bcbfaa550ce26bd5b796f94acdeb7a91f3864ba5d945
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / ps_python_docx-1.3.7-py3-none-any.whl

Download URL ps_python_docx-1.3.7-py3-none-any.whl
Size 271.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cf1e2279293fc29c0891181c8ef14a03bed1de8372e055801df2ff1d52c2084f
BLAKE2b-256 checksum
How to use checksums
29849b2a3d0df82d491cbbb6d0902093f4aaf9ac920ec2d6a4c42ef8ee19643e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.3.7 This release

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

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