Skip to main content

Artix

A generic artifact utility.

Purpose

The motivation behind this project is to provide an integrated, CLI-based experience for managing general (i.e. file-based) artifacts.

Quickstart

To get started with artix you'll need to create an Artix configuration file within your project. Currently, the filename must be artix.toml. The directory the configuration file is placed in will be considered the root path that artix will act on for that configuration file, thus all artifacts will be downloaded relative to that root.

An example configuration is given below for a project that declares some country code data as an artifact.

[artix.config]
version = 0

[repository.country-codes]
source = "https://raw.githubusercontent.com/datasets/country-codes/${tag}/data/country-codes.csv"

[artifact.country-codes]
destination = "country-codes.csv"
locked = true
repository = "country-codes"

[artifact.country-codes.version]
tag = "master"

This configuration declares one "repository", which declares where to pull the artifact data from, as well as one "artifact" and the associated version information for it. The artifact's destination is where to place the downloaded artifact on the filesystem. The artifact's version information will be populated into the repository's source.

Usage

To get started with the Artix CLI, ask it for help using the --help flag:

artix --help

The primary use case of artix is to sync your remote artifacts to your local filesystem. This can be accomplished with the sync command.

artix sync --help

NOTE: At present Artix doesn't fully "sync" your artifacts in that it won't remove artifacts that were once downloaded but have been removed from the configuration file. We intend to add this feature into a future release of Artix.

Configuration

The simplest way to configure Artix is to create an artix.toml file at the root of your project, or at the root of where you want your artifacts to be downloaded (e.g. a /data directory).

There are two main sections of the Artix TOML configuration file. The first is configuring repositories, and the second is configuring artifacts.

Repositories

A repository is simply a declaration of where to pull the artifact from, and it most commonly a URI. Each repository has a name and a source. A repository definition is a table, with the name being the second key of the table.

For example a repository with the name of country-codes would be declared as [repository.country-codes]. The source of the repository would then be declared with a source key/value pair.

The source key/value pair may contain string replacements that are populated from an artifact's version information. These replacements use the ${key} syntax where key is the name of the key/value pair from the version information.

See the full example definition below:

[repository.country-codes]
source = "https://raw.githubusercontent.com/datasets/country-codes/${tag}/data/country-codes.csv"

Artifacts

An artifact is a declaration of a specific version of a file pulled from a repository. Similar to a repository an artifact is declared as a TOML table, with the name of the artifact being the second key of the table. The only required configuration element is the name of the repository the artifact is pulled from.

[artifact.country-codes]
repository = "country-codes"

Additionally, you may specify a destination key which can be used to determine where to place the downloaded artifact. By default, Artix will simply save it in the Artix project's root directory with the same name as the artifact.

The example configuration below will save the artifact under the data directory located alongside the artix.toml configuration file with the name country-codes.csv.

[artifact.country-codes]
destination = "data/country-codes.csv"
repository = "country-codes"

Additionally there is a locked key/value pair that takes a boolean value. If true, this will instruct Artix to check the downloaded artifact against the Artix lockfile (if one exists) to ensure the checksum matches. By default, this is set to true but can be disabled with a false value, which can be useful if you don't care if the contents of the artifact change.

[artifact.country-codes]
destination = "data/country-codes.csv"
locked = false
repository = "country-codes"

Finally, each artifact can have a version definition. This is done via another TOML table and contains key/value pairs that are replaced into the associated repository's source value. Below is an example where we define the tag value to be master for the country-codes artifact's country-codes repository source string.

[artifact.country-codes.version]
tag = "master"

Metadata

Release files for artix 0.0.1

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

Source distribution (sdist)

Source distribution for artix 0.0.1
File Size Uploaded Provenance
artix-0.0.1.tar.gz 6.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for artix 0.0.1
File Interpreter ABI Platform
artix-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 13.7 kB

Release files / artix-0.0.1.tar.gz

Download URL artix-0.0.1.tar.gz
Size 6.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f9760b70957c87eab75897b7de19d3af9775e746cec0de8efa4101760962296e
BLAKE2b-256 checksum
How to use checksums
bd14cae19bbfe53fcbd7d7c13dbada71df5fa54446d952533d16143934ee02fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.12.4 Linux/5.15.154+

Release files / artix-0.0.1-py3-none-any.whl

Download URL artix-0.0.1-py3-none-any.whl
Size 7.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
65d8fd28c123eed88e973d3327130031f52301052772348ab18bf3e9290e3aa5
BLAKE2b-256 checksum
How to use checksums
68808fd39588dabed4aa4d29c7002ced1f49580db3cef539fa4a0d76be1b829d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.12.4 Linux/5.15.154+

Security for artix 0.0.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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files No provenance

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