8000 GitHub - ShawnMilo/fixedwidth: Python fixed-width to/from dict converter.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

ShawnMilo/fixedwidth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Easy two-way conversion between Python dictionaries and fixed-width files. The FixedWidth class has been used in production without modification for several years.

This module has also proven useful for "debugging" a fixed-width spec -- an invalid configuration reports an error that may not be obvious from reading the spec document.

Requires a 'config' dictonary. See unit tests for full example.

Small example

SAMPLE_CONFIG = {

	'first_name': {
		'required': True,
		'type': 'string',
		'start_pos': 1,
		'end_pos': 10,
		'alignment': 'left',
		'padding': ' '
	},

	'last_name': {
		'required': True,
		'type': 'string',
		'start_pos': 11,
		'end_pos': 30,
		'alignment': 'left',
		'padding': ' '
	},

	'date': {
		'required': True,
		'type': 'date',
		'start_pos': 31,
		'end_pos': 38,
		'alignment': 'left',
		'format': '%Y%m%d',
		'padding': ' '
	},

	'decimal': {
		'required': True,
		'type': 'decimal',
		'precision': 2,
		'rounding': decimal.ROUND_UP,
		'start_pos': 38,
		'end_pos': 42,
		'alignment': 'left',
		'padding': ' '
	},

}

Notes:

  • A field must have a start_pos and either an end_pos or a length. If both an end_pos and a length are provided, they must not conflict.

  • A field may not have a default value if it is required.

  • Supported types are string, integer, and decimal.

  • Alignment and padding are required.

License: BSD

About

Python fixed-width to/from dict converter.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Languages

0