John-Mark Gurney f6e3b57aa7 | 4 years ago | |
---|---|---|
casimport | 4 years ago | |
fixtures | 4 years ago | |
.gitignore | 4 years ago | |
LICENSE.txt | 4 years ago | |
Makefile | 4 years ago | |
NOTES.md | 4 years ago | |
README.md | 4 years ago | |
requirements.txt | 4 years ago | |
setup.py | 4 years ago |
This is a python module that is designed to load Python code from a cryptographic hash. The idea is that instead of having to package up simple code as a Python package, you can import it directly via the hash.
There is the concept of aliases to make the import statements easier
to read. An alias file is currently limited to python packages (modules
in a directory w/ an __init__.py
file). An example is the randpkg in
the fixtures directory. You can put a file named cas_aliases.txt
along
side the __init__.py
file. Each line of the file is:
<alias> <url>
Where alias is a simple name, and url is a location to find the file at. Currently, at least one hash url must be specified.
The following url schemes are supported:
ipfs://bafkreibtbcckul7lwxqz7nyzj3dknhwrdxj5o4jc6gsroxxjhzz46albym
.Top level usage:
import casimport
from cas.v1_f_330884aa2febb5e19fb7194ec6a69ed11dd3d77122f1a5175ee93e73cf0161c3 import hello
print(repr(hello('Alice')))
Defintion of module names in cas package: v__
Currently v1 is defined, and has the following types: f The arg is the hexidecimal hash of the Python source file. Generated via: shasum -a 256 hello.py a An alias. Any aliases must be loaded before being processed. This is a short name that could be used.
By default, a configuration file is read from ~/.casimport/casimport.conf
.
The configuration file allows the specification of the priority of the
different modules (does casimport search IPFS or HTTPS urls first), and
the configuration each of the modules.
The first time you import casimport, a sample configuration will be created. The default is a local cache the home directory, and then to use IPFS gateway, followed by normal https urls.