Skip to main content

aridity

DRY config and template system, easily extensible with Python.

This README is auto-generated, see project wiki for details.

Commands

arid-config

Print given config (with optional path in config) as shell snippet.

aridity

Interactive REPL.

processtemplate

Process the given template to stdout using config from stdin.

API

aridity.config

ConfigCtrl Objects

class ConfigCtrl(Forkable)

High level scope API.

r
@property
def r()

Get config object for reading, i.e. missing scopes will error.

w
@property
def w()

Get config object for writing, i.e. missing scopes will be created.

loadappconfig
def loadappconfig(mainfunction,
                  moduleresource,
                  encoding='ascii',
                  settingsoptional=False)

Using app name as prefix load config from the given resource, apply user settings, and return config object for app. Context module for loading resource and the app name are deduced from mainfunction, or these can be provided as a tuple. Set settingsoptional to suppress the usual error if ~/.settings.arid does not exist.

load
def load(pathorstream)

Execute config from the given path or stream.

execute
def execute(text)

Execute given config text.

__iter__
def __iter__()

Yield keys and values.

processtemplate
def processtemplate(frompathorstream, topathorstream)

Evaluate expression from path/stream and write result to path/stream.

RConfig Objects

class RConfig(Parabject)

__iter__
def __iter__()

Yield values only. Iterate over -self for keys and values.

aridity.directives

colon
def colon(prefix, suffix, scope)

Ignore rest of logical line.

source
@prime
def source(prefix, suffix, scope)

Include path or resource at prefix.

sourceifexists
@prime
def sourceifexists(prefix, suffix, scope)

Like . but allow the resource to be absent.

equals
@prime
def equals(prefix, suffix, scope)

Assign expression to path.

colonequals
@prime
def colonequals(prefix, suffix, scope)

Evaluate expression and assign result to path.

plusequals
@prime
def plusequals(prefix, suffix, scope)

Assign expression to prefix plus an opaque key, i.e. add to list.

commaequals
@prime
def commaequals(prefix, suffix, scope)

Split expression on whitespace and make a list out of the parts.

aridity.functions

screenstr
def screenstr(scope, resolvable)

GNU Screen string literal.

scstr
def scstr(scope, resolvable)

SuperCollider string literal.

hclstr
def hclstr(scope, resolvable)

HashiCorp configuration language string literal.

groovystr
def groovystr(scope, resolvable)

Groovy string literal.

pystr
def pystr(scope, resolvable)

Python literal.

shstr
def shstr(scope, resolvable)

Shell string literal.

jsonquote
def jsonquote(scope, resolvable)

JSON literal, also suitable for YAML.

xmlattr
def xmlattr(scope, resolvable)

XML attribute literal (including quotes).

xmltext
def xmltext(scope, resolvable)

XML content, suggest assigning this to & with xmlattr assigned to " as is convention.

tomlquote
def tomlquote(scope, resolvable)

TOML string literal.

urlquote
def urlquote(scope, resolvable)

Percent-encode all reserved characters.

map_
def map_(scope, objsresolvable, *args)

If given 1 arg, evaluate it against every scope in objsresolvable and return that list. If given 2 args, the first is a variable name to which each scope is temporarily assigned. If given 3 args, the first two are variable names for scope key and scope respectively.

join
def join(scope, partsresolvable, sepresolvable=None)

Concatenate the given list, using optional separator. Frequently used with map.

str_
def str_(scope, resolvable)

Coerce to string.

list_
def list_(scope, *resolvables)

Create a list.

try_
def try_(scope, *resolvables)

Attempt to evaluate each resolvable, returning the first that succeeds.

hereslash
def hereslash(scope, *resolvables)

Join the given path components with the directory of the current resource.

readfile
def readfile(scope, resolvable)

Include the content of the given path.

processtemplate
def processtemplate(scope, resolvable)

Evaluate the content of the given path as an expression.

pyref
def pyref(scope, moduleresolvable, qualnameresolvable)

Python object in given module with given qualified name. Module may be relative to current resource, in which case assignment with := is normally necessary. Typically used to import functions.

pyres
def pyres(scope, packageresolvable, nameresolvable, encoding=Text('ascii'))

Python resource for inclusion with . directive.

aridity.grammar

aridity.keyring

gpg
def gpg(scope, resolvable)

Use gpg to decrypt the given base64-encoded blob.

aridity.model

Resolvable Objects

class Resolvable(Struct)

resolve
def resolve(scope)

Evaluate this expression against the given scope.

wrap
def wrap(value)

Attempt to wrap the given value in a model object of the most specific type.

aridity.scope

Scope Objects

class Scope(Resolvable)

resolved
def resolved(*path)

Follow the given path to get an expression, evaluate it (resolving any paths it requires, recursively), and return the resulting model object.

Slash Objects

class Slash(Text, Function)

As text, the platform slash. As function, join args using that slash, starting with the last absolute path (or using all args if all relative).

aridity.util

Metadata

Release files for aridity 99

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

Source distribution (sdist)

Source distribution for aridity 99
File Size Uploaded
aridity-99.tar.gz 21.8 kB Details

Built distribution (wheel)

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

Total release size: 46.6 kB

Release files / aridity-99.tar.gz

Download URL aridity-99.tar.gz
Size 21.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c716790be8a742d3aaaca065f249c084c2e5ec07480378d787c7b5a500b6d700
BLAKE2b-256 checksum
How to use checksums
e79eda523e594bbef2f43886fa385fa6a266b13959c151c9a0ef290abd334ac5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release files / aridity-99-py3-none-any.whl

Download URL aridity-99-py3-none-any.whl
Size 24.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
85cbb75a85c648686d90ab2e686a3ee3e986544db2698897f38e6df3f2672be5
BLAKE2b-256 checksum
How to use checksums
012cdc6ce7f0550b7842c88aacdf99c16c407ced213482d659f670834e3f1444
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release history Release notifications | RSS feed

102

2 release files

101

2 release files

100

2 release files

This release

99 This release

2 release files

98

2 release files

97

2 release files

96

2 release files

95

2 release files

94

2 release files

93

2 release files

92

2 release files

91

2 release files

90

2 release files

89

2 release files

88

2 release files

87

2 release files

86

2 release files

85

2 release files

84

2 release files

83

2 release files

82

2 release files

81

2 release files

80

2 release files

79

2 release files

78

2 release files

77

2 release files

76

2 release files

75

2 release files

74

2 release files

73

2 release files

72

2 release files

71

2 release files

70

2 release files

69

2 release files

68

2 release files

67

2 release files

66

2 release files

65

2 release files

64

2 release files

63

2 release files

62

2 release files

61

2 release files

60

2 release files

59

2 release files

58

2 release files

57

2 release files

56

2 release files

55

2 release files

54

2 release files

53

2 release files

52

2 release files

51

2 release files

50

2 release files

49

2 release files

48

2 release files

47

2 release files

46

2 release files

45

2 release files

44

2 release files

43

2 release files

42

2 release files

41

2 release files

40

2 release files

39

2 release files

38

2 release files

37

2 release files

36

2 release files

35

2 release files

34

2 release files

33

2 release files

32

2 release files

31

2 release files

30

2 release files

29

2 release files

28

2 release files

27

2 release files

26

2 release files

25

2 release files

24

2 release files

23

2 release files

22

2 release files

21

2 release files

20

2 release files

19

2 release files

18

2 release files

17

2 release files

16

2 release files

15

2 release files

14

2 release files

13

2 release files

12

2 release files

11

2 release files

10

2 release files

9

2 release files

8

2 release files

7

2 release files

6

2 release files

5

2 release files

4

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