
Research
SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.
docxcompose
Advanced tools
docxcompose is a Python library for concatenating/appending Microsoft Word (.docx) files.
Append a document to another document:
.. code::
from docxcompose.composer import Composer
from docx import Document
master = Document("master.docx")
composer = Composer(master)
doc1 = Document("doc1.docx")
composer.append(doc1)
composer.save("combined.docx")
The docxcompose console script allows to compose docx files from the command
line, e.g.:
.. code:: sh
$ docxcompose files/master.docx files/content.docx -o files/composed.docx
To install docxcompose for development, clone the repository and using a python with poetry:
.. code:: sh
$ poetry install
Tests can then be run with pytest.
The tests provide helpers for blackbox testing that can compare whole word files. To do so the following files should be provided:
docs/composed_fixturedocs.The expected output can now be tested as follows:
.. code:: python
def test_example():
fixture = FixtureDocument("expected.docx")
composed = ComposedDocument("master.docx", "slave1.docx", "slave2.docx")
assert fixture == composed
Should the assertion fail the output file will be stored in the folder
docs/composed_debug with the filename of the fixture file, expected.docx
in case of this example.
The first document is considered as the main template and headers and footers from the other documents are ignored, so that the header and footer of the first document is used throughout the merged file.
FAQs
Compose .docx documents
We found that docxcompose demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 8 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.

Company News
Socket is proud to join the OpenJS Foundation as a Silver Member, deepening our commitment to the long-term health and security of the JavaScript ecosystem.

Security News
npm now links to Socket's security analysis on every package page. Here's what you'll find when you click through.