Skip to main content

This module is an implementation of archiver for a7d8473 archive format. It can archive directories, files, soft links, has shell interface.

What is a7d8473?

A7d8473 or simply a7d is a simple archive format, that has some nice features:

  • If source directory has only text files, then archive will also be text file.
  • Changing one line in the source file results in changing only one line in the archive.
  • If all source files have line lenght limit, then archive will also have line lenght limit.
  • Archived files are stored in compressor-friendly way: all the contents of the source file are usually included in the final archive file unchanged.
  • Metadata is saved in git-like manner. Thus only this metadata is saved:
    • Executable flag.
    • Link flag.
  • There is a bijection between the set of archive files and the set of directory structures.

Hello world

This is "Hello, world!" file pushed into a7d8473 archive.

a7d8473
:hello.txt/
Hello, world!
~ ~ ~

Here is a little more complex archive:

a7d8473
/name_of_directory/
:name_of_file.txt/
-> here is the content of file <-
~ ~ ~
!name_of_another_file_that_is_executable.py/
print('Hi')
~ ~ ~
@name_of_soft_link/
target_of_this_soft_link
~ ~ ~
@link_to_Hi.py/
./name_of_another_file_that_is_executable.py
~ ~ ~
/empty_directory/
\
\

The first line of archive file is always "a7d8473". Other lines describe archived files and directories. : before hello.txt means, that file hello.txt is neither executable nor soft link. There are other prefixes of file names:

  • @ denotes soft links.
  • ! denotes executable files.
  • / denotes directories.
  • : denotes simple files, which are neither executable nor soft links.

/ is also used as the end of the name because it is not a valid character in file names. \ means end of directory, while ~ ~ ~ denotes end of file content. Only printable ASCII characters are used outside of file contents. Thus, archive files are text files as long as source files are text files.

Release files for a7d 0.0.5

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

Source distribution (sdist)

Source distribution for a7d 0.0.5
File Size Uploaded
a7d-0.0.5.tar.gz 3.3 kB Details

Built distribution (wheel)

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

Total release size: 7.2 kB

Release files / a7d-0.0.5.tar.gz

Download URL a7d-0.0.5.tar.gz
Size 3.3 kB
Tags Source
SHA-256 checksum
How to use checksums
5a7b6ca48dbc1d8f88c450e0caf67f655df106504d45edf03f481bdbee60ac00
BLAKE2b-256 checksum
How to use checksums
b2caf641e9feb02106f7df45a6502d7947c42573368f3ca4ba82e327e943d666
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2

Release files / a7d-0.0.5-py3-none-any.whl

Download URL a7d-0.0.5-py3-none-any.whl
Size 3.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
46421ed28d419aa4bf102af1a6580fa400ead6f90c46fcfb97f650095c243335
BLAKE2b-256 checksum
How to use checksums
da7abb5672a2258d4383598f72d78c2b46b52da38a1f32e8655e1103c1e3f863
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2

Release history Release notifications | RSS feed

This release

0.0.5 This release

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

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