configparser

package module
v0.0.0-...-fec0393 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2019 License: MIT Imports: 9 Imported by: 0

README

go-configparser Build Status

Go implementation of the Python ConfigParser class.

This can parse Python-compatible ConfigParser config files, including support for option interpolation.

Setup

  import (
    "github.com/awsiv/go-configparser"
  )

Parsing configuration files

It's easy to parse a configuration file.

  p, err := configparser.NewConfigParserFromFile("example.cfg")
  if err != nil {
    ...
  }

Methods

The ConfigParser implements most of the Python ConfigParser API

  v, err := p.Get("section", "option")
  err = p.Set("section", "newoption", "value")

  s := p.Sections()

Interpolation

The ConfigParser implements interpolation in the same format as the Python implementation.

Given the configuration

  [DEFAULTS]
  dir: testing

  [testing]
  something: %(dir)s/whatever
  v, err := p.GetInterpolated("testing, something")

It's also possible to override the values to use when interpolating values by providing a Dict to lookup values in.

  d := make(configparser.Dict)
  d["dir"] = "/a/non/existent/path"
  result, err := p.GetInterpolatedWithVars("testing", "something", d)

Will get testing/whatever as the value

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config map[string]*Section

Config represents a Python style configuration file.

type ConfigParser

type ConfigParser struct {
	// contains filtered or unexported fields
}

ConfigParser ties together a Config and default values for use in interpolated configuration values.

func New

func New() *ConfigParser

New creates a new ConfigParser.

func NewConfigParserFromFile

func NewConfigParserFromFile(filename string) (*ConfigParser, error)

NewConfigParserFromFile creates a new ConfigParser struct populated from the supplied filename.

func NewWithDefaults

func NewWithDefaults(defaults Dict) *ConfigParser

NewWithDefaults allows creation of a new ConfigParser with a pre-existing Dict.

func Parse

func Parse(filename string) (*ConfigParser, error)

Parse takes a filename and parses it into a ConfigParser value.

func (*ConfigParser) AddSection

func (p *ConfigParser) AddSection(section string) error

AddSection creates a new section in the configuration.

Returns an error if a section by the specified name already exists. Returns an error if the specified name DEFAULT or any of its case-insensitive variants. Returns nil if no error and the section is created

func (*ConfigParser) Defaults

func (p *ConfigParser) Defaults() Dict

Defaults returns the items in the map used for default values.

func (*ConfigParser) Get

func (p *ConfigParser) Get(section, option string) (string, error)

Get returns string value for the named option.

Returns an error if a section does not exist Returns an error if the option does not exist either in the section or in the defaults

func (*ConfigParser) GetBool

func (p *ConfigParser) GetBool(section, option string) (bool, error)

func (*ConfigParser) GetFloat64

func (p *ConfigParser) GetFloat64(section, option string) (float64, error)

func (*ConfigParser) GetInt64

func (p *ConfigParser) GetInt64(section, option string) (int64, error)

func (*ConfigParser) GetInterpolated

func (p *ConfigParser) GetInterpolated(section, option string) (string, error)

GetInterpolated returns a string value for the named option.

All % interpolations are expanded in the return values, based on the defaults passed into the constructor and the DEFAULT section.

func (*ConfigParser) GetInterpolatedWithVars

func (p *ConfigParser) GetInterpolatedWithVars(section, option string, v Dict) (string, error)

GetInterpolatedWithVars returns a string value for the named option.

All % interpolations are expanded in the return values, based on the defaults passed into the constructor and the DEFAULT section. Additional substitutions may be provided using the 'v' argument, which must be a Dict whose contents contents override any pre-existing defaults.

func (*ConfigParser) HasOption

func (p *ConfigParser) HasOption(section, option string) (bool, error)

func (*ConfigParser) HasSection

func (p *ConfigParser) HasSection(section string) bool

HasSection returns true if the named section is present in the configuration.

The DEFAULT section is not acknowledged.

func (*ConfigParser) Items

func (p *ConfigParser) Items(section string) (Dict, error)

Items returns a copy of the section Dict not including the Defaults.

NOTE: This is different from the Python version which returns a list of tuples

func (*ConfigParser) ItemsWithDefaults

func (p *ConfigParser) ItemsWithDefaults(section string) (Dict, error)

ItemsWithDefaults returns a copy of the named section Dict including any values from the Defaults.

NOTE: This is different from the Python version which returns a list of tuples

func (*ConfigParser) ItemsWithDefaultsInterpolated

func (p *ConfigParser) ItemsWithDefaultsInterpolated(section string) (Dict, error)

ItemsWithDefaultsInterpolated returns a copy of the dict for the section.

func (*ConfigParser) Options

func (p *ConfigParser) Options(section string) ([]string, error)

Options returns a list of option mames for the given section name.

Returns an error if the section does not exist.

func (*ConfigParser) RemoveOption

func (p *ConfigParser) RemoveOption(section, option string) error

func (*ConfigParser) RemoveSection

func (p *ConfigParser) RemoveSection(section string) error

func (*ConfigParser) SaveWithDelimiter

func (p *ConfigParser) SaveWithDelimiter(filename, delimiter string) error

SaveWithDelimiter writes the current state of the ConfigParser to the named file with the specified delimiter.

func (*ConfigParser) Sections

func (p *ConfigParser) Sections() []string

Sections returns a list of section names, excluding [DEFAULT].

func (*ConfigParser) Set

func (p *ConfigParser) Set(section, option, value string) error

Set puts the given option into the named section.

Returns an error if the section does not exist.

func (*ConfigParser) ToString

func (p *ConfigParser) ToString() string

type Dict

type Dict map[string]string

Dict is a simple string->string map.

func (Dict) Keys

func (d Dict) Keys() []string

Keys returns a sorted slice of keys

type Section

type Section struct {
	Name string
	// contains filtered or unexported fields
}

func (*Section) Add

func (s *Section) Add(key, value string) error

func (*Section) Get

func (s *Section) Get(key string) (string, error)

func (*Section) Items

func (s *Section) Items() Dict

func (*Section) Options

func (s *Section) Options() []string

func (*Section) Remove

func (s *Section) Remove(key string) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL