-
Notifications
You must be signed in to change notification settings - Fork 0
/
1config_project.yml
96 lines (82 loc) · 4.19 KB
/
1config_project.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# OneConfig configuration file
# TODO: This config file contains quite a few explanation lines,
# to show the capabilities. Those would be better kept
# in thedocumentatition.
project: # Project information ------------------------------------------
name: one-config # can be whatever you want, but it is a good idea
# to give it the same name as the python package
version: 0.1.0 # should always be given, but can be automatically
# retrieved from git. via !get_git_setting
# Add a short but meaningfull description here:
description: >
Collect all configuration information for your project in a single
place − this file. Of course you can create and include subfiles
if this gets to unwieldy.
author: &author # The author can be a single name or a list
Matthias Bosewitz
copyright: 2019, bosewitz.com
license: # there can be a single license or multiple licenses
GNU General Public License (Version 3)
website: # you can supply one or many websites
homepage: https://bosewitz.com/software/one-config
github: https://github.com/batthias/one-config
# TODO: create logo (and an icon) (not super important)
icon: one-config.png
logo: one-config.svg
tasks: # Tasks to be completed ------------------------------------------
'generate-files': # this is the file generator ......................
# the generator can be called in a folder to generate files
help: Generate other files from the config file.
shell: python -m oneconfig.template generate
'add-template': # add some templates ................................
help: Add a template that OneConfig should support.
shell: python -m oneconfig.template add
'build': # build the package ........................................
help: Build the package and be happy.
Python: # Python specific settings --------------------------------------
kernel:
default: 3.9 # by default this package recommends using python 3.7 …
required: '>= 3.6' # … but all versions above 3.6 are fine
importName: &importName # module can be imported in python under this name
oneconfig
requirements: # the python package requirements sorterd by name
- name: jinja2
# TODO: add version requirements here
description: render templates
- name: pyyaml
description: load and save YAML files
# TODO: dependency locking needs to be implemented somehow
# dependenciesLock: !load dependencies.lock.yml # lock some versions
style: # what are the styles for python files
indentation: 4 spaces # use 4 spaces for indentation
# indentation: tabs # use real tabs for indentation
trailingCommas: all # lists need to always have trailing commas
# trailingCommas: any # lists are allowed to have trailing commas
# trailingCommas: none # lists must not have trailing commas
typeHints: all # require everything to have type hints
# typeHints: any # type hints are allowed but not enforced
# typeHints: none # type hints are forbidden
tests: # Settings for running tests -------------------------------------
testSuite: nose.collector # use nose
# TODO: setup testing
# python -m oneconfig.template add http://example.com/sometemplatepack
flake8: # Settings for the hinting system ´flake8´ ----------------------
ignore: "D203" # D203 = 1 blank line required before class docstring
exclude: # folders / files which are not checked
- .git
- __pycache__
- docs/source/conf.py
- dist
max-complexity: 10
OneConfig:
version: ">= 0"
generate: # Files that can be generated automatically
# The template files can be found under "templates"
# In an installation more templates can be added via
# >>>
- file: setup.py # the setup.py can be easily generated
template: python/setup.py
- file: requirements.txt # the requirements.txt is also easy
template: python/requirements.txt
- file: LICENSE
template: legal/license_gnu.txt