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)
| File | Size | Uploaded | |
|---|---|---|---|
| a7d-0.0.5.tar.gz | 3.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|