Skip to content

trustyou/comfy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

comfy

Comfy lets you define schemata for config files, compatible with mypy type checking, and IDE autocompletion. Example:

Config schema:

from comfy import *

class MyConfig(Schema):
    class Server(Section):
        host = Option()
        port = IntOption()
    server: Server
    
    # In Python 3.5 or lower, write as:
    server = None  # type: Server

Config file:

[server]
host=api.trustyou.com
port=8080

Now to parse our beautiful config file:

from configparser import ConfigParser

config_parser = ConfigParser()
# Read actual config files …

config = MyConfig(config_parser)

print(config.server.host)
# prints api.trustyou.com

print(config.server.hsot)  # Note the typo
# mypy error: "Server" has no attribute "hsot"

print(config.server.port.lower())
# mypy error: "int" has no attribute "lower"

About

Python library for parsing config files with typed schemata

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages