yaml-injection
usage
in python
import yaml
from yaml_injection import InjectionLoader
with open(file_path) as in_:
data = yaml.load(in_, InjectionLoader)
in yaml
The key word is !inject.
There are two types of syntax: simple and extended.
simple syntax
!inject file: path to file in local file system
!inject ref: section subsection
ref is a keys leading to section separated by space.
* Yep it will works only if keys does not contain spaces.
!inject url: public url with yaml file
extended syntax
WARNING: A SPACE SYMBOL AFTER
!injectAND BEFORE:IS MANDATORY!!
!inject :
file: path to file in local file system
url: public url with yaml file
ref: section subsection
Both simple and extended syntax accept lists in file, url and ref sections.
examples
Examples are gotten from tests.
example 1
sub.yaml
sub_only: sub_only
both_files: both_files_value_from_sub
non_map_object:
- sub
non_map_only_sub:
- sub_only
both_files_map:
sub_only: sub_only
both_files: both_files_value_from_sub
deep:
deep:
deep:
map:
sub_only: sub_only
both_files: both_files_value_from_sub
main.yml
!inject file: sub.yml
main_only: main_only
both_files: both_files_value_from_main
both_files_map:
both_files: both_files_value_from_main
main_only: main_only_value_from_main
deep:
deep:
deep:
map:
main_only: main_only
both_files: both_files_value_from_main
non_map_object:
- main
non_map_only_main:
- main_only
will be loaded as:
both_files: both_files_value_from_main
both_files_map:
both_files: both_files_value_from_main
main_only: main_only_value_from_main
sub_only: sub_only
main_only: main_only
sub_only: sub_only
deep:
deep:
deep:
map:
main_only: main_only
both_files: both_files_value_from_main
sub_only: sub_only
non_map_object:
- main
non_map_only_main:
- main_only
non_map_only_sub:
- sub_only
example 2
sections:
sub:
common:
variables:
job_name: sub_name
script: sub
job_1:
only:
- refs
script:
- make build
- make start
job_2:
except:
- tags
script:
- make build
- make start
main:
!inject :
ref: sections sub
common:
variables:
script: main
runner: main_runner
job_1:
only:
- release
job_2:
before_script:
- make prepare
will be loaded as:
main:
common:
variables:
job_name: sub_name
runner: main_runner
script: main
job_1:
only:
- release
script:
- make build
- make start
job_2:
before_script:
- make prepare
except:
- tags
script:
- make build
- make start
sections:
sub:
common:
variables:
job_name: sub_name
script: sub
job_1:
only:
- refs
script:
- make build
- make start
job_2:
except:
- tags
script:
- make build
- make start
Release files for yaml-injection 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| yaml-injection-0.0.4.tar.gz | 4.0 kB | Details |
Release files / yaml-injection-0.0.4.tar.gz
| Download URL | yaml-injection-0.0.4.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6afef9b80e121348e3a1585be9e1c95f5db9376eb2bb5952210ba2cb8fd01f89
|
|
BLAKE2b-256 checksum How to use checksums |
8777c7f8afa86658733e302c48b856026fa1b628fe03290436b6e006d20418a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6
|