inmanta-module-files
This package is an adapter that is meant to be used with the inmanta orchestrator: https://docs.inmanta.com
Features
This module allows to manage files, on a unix host. It contains the following resources:
files::Directory: to manage a directory, its existence, permissions and ownership.files::TextFile: to manage a simple text file, its existence, content, permissions and ownership. This should not be used for big files, as the content of the file is embedded in the resource itself.files::HostFile: to manage hosts file entries (i.e./etc/hosts), but allowing the file to be managed by other tools. The resource makes sure to only modify the entries defined in its desired state and leave the rest untouched.files::JsonFileandfiles::SharedJsonFile: to manage json file entries. Similarly tofiles::HostFile, only change in the file what is present in the desired state. The file can then still be modified by other tools.files::SystemdUnitFile: an entity representing a unit file, which exposes it most useful properties directly in the model. After being exported, this resource becomes nothing more than a text file.files::Symlink: to manage a symlink, its existence and ownership.
It also exposes the files::jinja plugin, to render a jinja template at compile time while keeping any reference it embeds (e.g. a secret) unresolved. Such references are then resolved by the agent, on the host, when the resource is deployed.
Example
The following example makes sure that the directory /example/folder/a exists, and creates a text file in it.
import mitogen
import files
import std
host = std::Host(
name="localhost",
os=std::linux,
via=mitogen::Local(),
)
dir = files::Directory(
host=host,
path="/example/folder/a",
# The directory that is managed is /example/folder/a, but the resource
# will also make sure that any of its parent directories exists as well
create_parents=true,
)
file = files::TextFile(
host=host,
path=f"{dir.path}/file.txt",
content="test",
# No need to explicitly add the dependency to the parent, the
# exporter takes care of adding it
# requires=dir,
)
Jinja templates with references
The files::jinja plugin renders a template stored in the project's templates/ folder. Inputs that are references, such as secrets pulled from the environment, are not resolved at compile time: they are kept in the rendered content and resolved by the agent, on the host, when the resource is deployed.
Given the following template, stored in templates/app.conf.j2:
[database]
password = {{ "APP_PASSWORD" | std.create_environment_reference() }}
The following example renders it into a text file, while keeping the password as an environment reference resolved at deploy time:
import mitogen
import files
import std
host = std::Host(
name="localhost",
os=std::linux,
via=mitogen::Local(),
)
file = files::TextFile(
host=host,
path="/example/folder/app.conf",
# The template is rendered at compile time, but the password, which
# is an environment reference, is left untouched. It is resolved by
# the agent, on the host, when the resource is deployed.
content=files::jinja("template:///app.conf.j2"),
)
Find more examples in the ´tests` folder of this module!
Metadata
Release files for inmanta-module-files 2.11.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| inmanta_module_files-2.11.1.tar.gz | 50.4 kB | With provenance | Details for inmanta_module_files-2.11.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| inmanta_module_files-2.11.1-py3-none-any.whl | Python 3 | none | any | Details for inmanta_module_files-2.11.1-py3-none-any.whl |
Total release size: 98.3 kB
Release files / inmanta_module_files-2.11.1.tar.gz
| Download URL | inmanta_module_files-2.11.1.tar.gz |
|---|---|
| Size | 50.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
71ed7a6dbc3470d6e7476d3355e69c175aad2f419f35e5ba5f13ed14434f90cc
|
|
BLAKE2b-256 checksum How to use checksums |
d9cfb3c1cfb61cf6afba7f4b18894088ad36adb869c7e5e64f48a8f9bf9858d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 28, 2026.
Transparency logRelease files / inmanta_module_files-2.11.1-py3-none-any.whl
| Download URL | inmanta_module_files-2.11.1-py3-none-any.whl |
|---|---|
| Size | 47.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c7435c35aa0efde8379a1726e269c84b96eaafb29e16e495c1bf61aafbec1c6d
|
|
BLAKE2b-256 checksum How to use checksums |
0e26d732d37f90f2d42bd323cade178f32a1904c4b33a347f09f9ae6aa98517d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 28, 2026.
Transparency logSecurity for inmanta-module-files 2.11.1
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for inmanta_module_files-2.11.1.tar.gz
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 Jun 28, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.